/*!*
 *
 *  Copyright (c) Highsoft AS. All rights reserved.
 *
 *!*/
import * as globals from "./globals.src";
/**
 * 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;
/**
 * (Highstock) Options for crosshairs on axes.
 */
export type AxisCrosshairOptions = (XAxisCrosshairOptions|YAxisCrosshairOptions);
export type AxisEventCallbackFunction = (this: Axis) => void;
export type AxisExtremesTriggerValue = ("navigator"|"pan"|"scrollbar"|"zoom"|"rangeSelectorButton"|"rangeSelectorInput"|"traverseUpButton");
/**
 * 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) => Array<number>;
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");
/**
 * The operator to compare by in the filter.
 */
export type DataLabelsFilterOperatorValue = ("=="|"==="|">"|">="|"<"|"<=");
/**
 * 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 DataLabelsFormatterCallbackFunction = (this: DataLabelsFormatterContextObject) => (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;
/**
 * 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 OptionsDraggableValue = (""|"x"|"xy"|"y");
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 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 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 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.
 */
export type PointOptionsType = (number|string|PointOptionsObject|Array<(number|string)>|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;
/**
 * 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: (DataLabelsFormatterContextObject|SeriesNetworkgraphDataLabelsFormatterContextObject)) => string;
/**
 * The possible types of series options.
 */
export type SeriesOptionsType = (SeriesAbandsOptions|SeriesAdOptions|SeriesAoOptions|SeriesApoOptions|SeriesAreaOptions|SeriesArearangeOptions|SeriesAreasplineOptions|SeriesAreasplinerangeOptions|
SeriesAroonOptions|SeriesAroonoscillatorOptions|SeriesAtrOptions|SeriesBarOptions|SeriesBbOptions|SeriesBellcurveOptions|SeriesBoxplotOptions|SeriesBubbleOptions|SeriesBulletOptions|
SeriesCandlestickOptions|SeriesCciOptions|SeriesChaikinOptions|SeriesCmfOptions|SeriesColumnOptions|SeriesColumnpyramidOptions|SeriesColumnrangeOptions|SeriesCylinderOptions|SeriesDemaOptions|
SeriesDependencywheelOptions|SeriesDpoOptions|SeriesEmaOptions|SeriesErrorbarOptions|SeriesFlagsOptions|SeriesFunnel3dOptions|SeriesFunnelOptions|SeriesGanttOptions|SeriesGaugeOptions|
SeriesHeatmapOptions|SeriesHistogramOptions|SeriesIkhOptions|SeriesItemOptions|SeriesKeltnerchannelsOptions|SeriesLinearregressionangleOptions|SeriesLinearregressioninterceptOptions|
SeriesLinearregressionOptions|SeriesLinearregressionslopeOptions|SeriesLineOptions|SeriesMacdOptions|SeriesMapbubbleOptions|SeriesMaplineOptions|SeriesMapOptions|SeriesMappointOptions|
SeriesMfiOptions|SeriesMomentumOptions|SeriesNatrOptions|SeriesNetworkgraphOptions|SeriesOhlcOptions|SeriesOrganizationOptions|SeriesPackedbubbleOptions|SeriesParetoOptions|SeriesPcOptions|
SeriesPieOptions|SeriesPivotpointsOptions|SeriesPolygonOptions|SeriesPpoOptions|SeriesPriceenvelopesOptions|SeriesPsarOptions|SeriesPyramid3dOptions|SeriesPyramidOptions|SeriesRocOptions|
SeriesRsiOptions|SeriesSankeyOptions|SeriesScatter3dOptions|SeriesScatterOptions|SeriesSmaOptions|SeriesSolidgaugeOptions|SeriesSplineOptions|SeriesStochasticOptions|SeriesStreamgraphOptions|
SeriesSunburstOptions|SeriesSupertrendOptions|SeriesTemaOptions|SeriesTilemapOptions|SeriesTimelineOptions|SeriesTreemapOptions|SeriesTrendlineOptions|SeriesTrixOptions|SeriesVariablepieOptions|
SeriesVariwideOptions|SeriesVbpOptions|SeriesVectorOptions|SeriesVennOptions|SeriesVwapOptions|SeriesWaterfallOptions|SeriesWilliamsrOptions|SeriesWindbarbOptions|SeriesWmaOptions|
SeriesWordcloudOptions|SeriesXrangeOptions|SeriesZigzagOptions);
/**
 * 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: (DataLabelsFormatterContextObject|SeriesPackedBubbleDataLabelsFormatterContextObject)) => string;
/**
 * Formatter callback function.
 *
 * @param this
 *        Data label context to format
 *
 * @return Formatted data label text
 */
export type SeriesSankeyDataLabelsFormatterCallbackFunction = (this: (DataLabelsFormatterContextObject|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 rotation options for data labels in the sunburst series.
 */
export type SeriesSunburstDataLabelsRotationValue = ("auto"|"parallel"|"perpendicular");
/**
 * 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<(number|SVGPathCommand)>;
/**
 * Possible path commands in a SVG path array.
 */
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 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 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 = (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 AccessibilityAnnounceNewDataOptions {
    /**
     * (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?: Function;
    /**
     * (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 the focus border drawn
 * around elements while navigating through them.
 */
export interface AccessibilityKeyboardNavigationFocusBorderOptions {
    /**
     * (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 AccessibilityKeyboardNavigationOptions {
    /**
     * (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?: AccessibilityKeyboardNavigationFocusBorderOptions;
    /**
     * (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) 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) Skip null points when navigating
     * through points with the keyboard.
     */
    skipNullPoints?: boolean;
    /**
     * (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 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) Whether or not to add a shortcut
     * button in the screen reader information region to show the data table.
     */
    addTableShortcut?: boolean;
    /**
     * (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?: AccessibilityAnnounceNewDataOptions;
    /**
     * (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) 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?: object;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether or not to add series
     * descriptions to charts with a single series.
     */
    describeSingleSeries?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A text description of the chart.
     *
     * **Note: Prefer using 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, it is preferred to define
     * the description there, as the caption benefits all users. The caption
     * will be available to screen reader users. If this option is defined
     * instead, 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.
     */
    highContrastTheme?: object;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for keyboard navigation.
     */
    keyboardNavigation?: AccessibilityKeyboardNavigationOptions;
    /**
     * (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) 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.
     */
    onTableAnchorClick?: ScreenReaderClickCallbackFunction;
    /**
     * (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.
     */
    pointDateFormat?: 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.
     */
    pointDateFormatter?: 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.
     */
    pointDescriptionFormatter?: ScreenReaderFormatterCallbackFunction<Point>;
    /**
     * (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.
     */
    pointDescriptionThreshold?: (boolean|number);
    /**
     * (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.
     */
    pointNavigationThreshold?: (boolean|number);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Decimals to use for the values
     * in the point descriptions. Uses tooltip.valueDecimals if not defined.
     */
    pointValueDecimals?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Prefix to add to the values in
     * the point descriptions. Uses tooltip.valuePrefix if not defined.
     */
    pointValuePrefix?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Suffix to add to the values in
     * the point descriptions. Uses tooltip.valueSuffix if not defined.
     */
    pointValueSuffix?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A formatter function to create
     * the HTML contents of the hidden screen reader information region.
     * 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.
     *
     * The button to view the chart as a data table will be added automatically
     * after the custom HTML content if enabled.
     */
    screenReaderSectionFormatter?: ScreenReaderFormatterCallbackFunction<Chart>;
    /**
     * (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.
     */
    seriesDescriptionFormatter?: ScreenReaderFormatterCallbackFunction<Series>;
    /**
     * (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;
}
/**
 * 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.
 */
export interface AnimationOptionsObject {
    /**
     * A callback function to exectute when the animation finishes.
     */
    complete?: Function;
    /**
     * 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;
}
/**
 * (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 AnnotationsControlPointOptions {
    height?: number;
    positioner?: any;
    style?: AnnotationsControlPointStyleOptions;
    symbol?: string;
    visible?: boolean;
    width?: number;
}
export interface AnnotationsControlPointStyleOptions {
    fill?: string;
    stroke?: string;
    "stroke-width"?: 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) 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) 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) 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 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) 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) 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) 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 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?: 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) 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) 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) 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) 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;
    /**
     * (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) 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 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) 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) 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?: any;
    /**
     * (Highstock) The height of the fibonacci in terms of yAxis.
     */
    height?: number;
    /**
     * (Highstock) An array with options for the labels.
     */
    labels?: (AnnotationsFibonacciTypeLabelsOptions|Array<object>);
    /**
     * (Highstock) Line options.
     */
    line?: AnnotationsFibonacciTypeLineOptions;
    /**
     * (Highstock) The color of line.
     */
    lineColor?: string;
    /**
     * (Highstock) An array of colors for the lines.
     */
    lineColors?: any;
    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) 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) 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) 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 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) 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) 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) 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) 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|AnnotationsLabelsPointOptions|MockPointOptionsObject);
    /**
     * (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) 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.
 */
export interface AnnotationsLabelsPointOptions {
    /**
     * (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);
    /**
     * (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);
}
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?: any;
    /**
     * (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) 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?: (object|AnnotationsControlPointOptions);
    /**
     * (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?: OptionsDraggableValue;
    /**
     * (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) 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) 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) 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 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) 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 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) 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 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) 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 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) 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|AnnotationsShapesPointOptions|MockPointOptionsObject);
    /**
     * (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?: (AnnotationsShapesPointsOptions|Array<(string|MockPointOptionsObject)>);
    /**
     * (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 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) 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.
 */
export interface AnnotationsShapesPointOptions {
    /**
     * (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);
    /**
     * (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);
}
/**
 * (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 AnnotationsShapesPointsOptions {
    /**
     * (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);
    /**
     * (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);
}
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) 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) 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) 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 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) 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) 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) 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 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) 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 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) 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>;
    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;
}
export interface AxisLabelsFormatterContextObject {
    axis: Axis;
    chart: Chart;
    isFirst: boolean;
    isLast: boolean;
    pos: number;
    value: number;
}
/**
 * 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. Requires the
     * exporting module.
     */
    afterPrint?: ExportingAfterPrintCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires before a chart is printed
     * through the context menu item or the `Chart.print` method. Requires the
     * exporting module.
     */
    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.</dd>
     *
     * - `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
     * corresponing to the category.</dd>
     *
     * - `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.
     *
     * Requires the `export-data` module.
     */
    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:
     *
     *  (see online documentation for example)
     */
    animation?: (boolean|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.
     *
     * Requires `debugger.js` module.
     */
    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|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) 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?: boolean;
    /**
     * (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;
    /**
     * (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_. Requires
     * `highcharts-more.js`.
     */
    polar?: boolean;
    /**
     * (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. Requires the draggable-points module. 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) Accessibility options for an axis. Requires the accessibility
 * module.
 */
export interface ChartParallelAxesAccessibilityOptions {
    /**
     * (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 ChartParallelAxesCrosshairLabelOptions {
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border color for the crosshair label
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border corner radius of the crosshair label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width for the crosshair label.
     */
    borderWidth?: number;
    /**
     * (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) 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 ChartParallelAxesCrosshairOptions {
    /**
     * (Highcharts) A class name for the crosshair, especially as a hook for
     * styling.
     */
    className?: string;
    /**
     * (Highcharts) 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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The dash style for the crosshair. See 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?: ChartParallelAxesCrosshairLabelOptions;
    /**
     * (Highcharts) Whether the crosshair should snap to the point or follow the
     * pointer independent of points.
     */
    snap?: boolean;
    /**
     * (Highcharts) 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) 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;
}
export interface ChartParallelAxesDateTimeLabelFormatsDayOptions {
    main?: string;
}
export interface ChartParallelAxesDateTimeLabelFormatsHourOptions {
    main?: string;
    range?: boolean;
}
export interface ChartParallelAxesDateTimeLabelFormatsMillisecondOptions {
    main?: string;
    range?: boolean;
}
export interface ChartParallelAxesDateTimeLabelFormatsMinuteOptions {
    main?: string;
    range?: boolean;
}
export interface ChartParallelAxesDateTimeLabelFormatsMonthOptions {
    main?: string;
}
/**
 * (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 ChartParallelAxesDateTimeLabelFormatsOptions {
    day?: (string|ChartParallelAxesDateTimeLabelFormatsDayOptions);
    hour?: (string|ChartParallelAxesDateTimeLabelFormatsHourOptions);
    millisecond?: (string|ChartParallelAxesDateTimeLabelFormatsMillisecondOptions);
    minute?: (string|ChartParallelAxesDateTimeLabelFormatsMinuteOptions);
    month?: (string|ChartParallelAxesDateTimeLabelFormatsMonthOptions);
    second?: (string|ChartParallelAxesDateTimeLabelFormatsSecondOptions);
    week?: (string|ChartParallelAxesDateTimeLabelFormatsWeekOptions);
    year?: (string|ChartParallelAxesDateTimeLabelFormatsYearOptions);
}
export interface ChartParallelAxesDateTimeLabelFormatsSecondOptions {
    main?: string;
    range?: boolean;
}
export interface ChartParallelAxesDateTimeLabelFormatsWeekOptions {
    main?: string;
}
export interface ChartParallelAxesDateTimeLabelFormatsYearOptions {
    main?: string;
}
/**
 * (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.
     */
    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.
 */
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?: FormatterCallbackFunction<AxisLabelsFormatterContextObject>;
    /**
     * (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 the label relative to the tick
     * position on the axis. Defaults to -15 for left axis, 15 for right axis.
     */
    x?: number;
    /**
     * (Highcharts) The y position offset of the label relative to the tick
     * position on the axis.
     */
    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?: (object|ChartParallelAxesAccessibilityOptions);
    /**
     * (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:
     *
     *  (see online documentation for example)
     */
    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|ChartParallelAxesCrosshairOptions);
    /**
     * (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?: ChartParallelAxesDateTimeLabelFormatsOptions;
    /**
     * (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?: 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;
    /**
     * (Highstock) The height of the Y axis. If it's a number, it is interpreted
     * as pixels.
     *
     * Since Highstock 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.
     */
    labels?: ChartParallelAxesLabelsOptions;
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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.
     *
     * This feature requires the `drag-panes.js` module.
     */
    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.
     *
     * This feature requires the `drag-panes.js` module.
     */
    minLength?: (number|string);
    /**
     * (Highcharts) Color for the minor tick marks.
     */
    minorTickColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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 that 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. This feature requires the
     * drag-panes.js module. 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.
     */
    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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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;
    /**
     * (Highstock) The top position of the Y axis. If it's a number, it is
     * interpreted as pixel position relative to the chart.
     *
     * Since Highstock 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) 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.
 *
 * This feature requires the `drag-panes.js` module.
 */
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.
     *
     * This feature requires the `drag-panes.js` module.
     */
    next?: Array<(number|string)>;
    /**
     * (Highstock) Array of axes that should move with the current axis while
     * resizing.
     *
     * This feature requires the `drag-panes.js` module.
     */
    prev?: Array<(number|string)>;
}
/**
 * (Highstock) Options for axis resizing. This feature requires the
 * drag-panes.js module. 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.
     *
     * This feature requires the `drag-panes.js` module.
     */
    controlledAxis?: ChartParallelAxesResizeControlledAxisOptions;
    /**
     * (Highstock) Cursor style for the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     *
     * This feature requires the `drag-panes.js` module.
     */
    cursor?: string;
    /**
     * (Highstock) Enable or disable resize by drag for the axis.
     *
     * This feature requires the `drag-panes.js` module.
     */
    enabled?: boolean;
    /**
     * (Highstock) Color of the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     *
     * This feature requires the `drag-panes.js` module.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Dash style of the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     *
     * This feature requires the `drag-panes.js` module.
     */
    lineDashStyle?: string;
    /**
     * (Highstock) Width of the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     *
     * This feature requires the `drag-panes.js` module.
     */
    lineWidth?: number;
    /**
     * (Highstock) Horizontal offset of the control line.
     *
     * This feature requires the `drag-panes.js` module.
     */
    x?: number;
    /**
     * (Highstock) Vertical offset of the control line.
     *
     * This feature requires the `drag-panes.js` module.
     */
    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;
}
/**
 * (Highcharts, Highstock, Highmaps) Accessibility options for an axis. Requires
 * the accessibility module.
 */
export interface ColorAxisAccessibilityOptions {
    /**
     * (Highcharts, Highstock, Highmaps) Description for an axis to expose to
     * screen reader users.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Highmaps) 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, Highstock, Highmaps) Range description for an axis.
     * Overrides the default range description. Set to empty to disable range
     * description for this axis.
     */
    rangeDescription?: string;
}
/**
 * (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;
}
/**
 * (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 ColorAxisCurrentDateIndicatorOptions {
    /**
     * (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;
    /**
     * (Gantt) An id used for identifying the plot line in Axis.removePlotLine.
     */
    id?: string;
    /**
     * (Gantt) Text labels for the plot bands
     */
    label?: ColorAxisCurrentDateIndicatorLabelOptions;
    /**
     * (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, 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.
     */
    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?: FormatterCallbackFunction<AxisLabelsFormatterContextObject>;
    /**
     * (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. Can be undefined or "justify". If "justify",
     * labels will not render outside the legend 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 the label
     * relative to the tick position on the axis.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The y position offset of the label
     * relative to the tick position on the axis. The default makes it adapt to
     * the font size on bottom axis.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The Z index for the axis labels.
     */
    zIndex?: 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`.
 */
export interface ColorAxisMarkerOptions {
    /**
     * (Highcharts, Highstock, Highmaps) Animation for the marker as it moves
     * between values. Set to `false` to disable animation. Defaults to `{
     * duration: 50 }`.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps) The color of the marker.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
}
/**
 * (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?: (object|ColorAxisAccessibilityOptions);
    /**
     * (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) Whether to allow decimals on the color
     * axis.
     */
    allowDecimals?: boolean;
    /**
     * (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|ColorAxisCurrentDateIndicatorOptions);
    /**
     * (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, 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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: ColorAxisMarkerOptions;
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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;
    /**
     * (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;
    /**
     * (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;
    /**
     * (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?: 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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Highmaps) Whether to zoom axis. If
     * `chart.zoomType` is set, the option allows to disable zooming on an
     * individual axis.
     */
    zoomEnabled?: 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;
    step?: 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) The z index of the scrollbar group.
     */
    zIndex?: number;
}
/**
 * (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?: 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?: 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 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;
}
/**
 * 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 {
    /**
     * The operator to compare by. Can be one of `>`, `<`, `>=`, `<=`, `==`, and
     * `===`.
     */
    operator: DataLabelsFilterOperatorValue;
    /**
     * 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;
    /**
     * The value to compare against.
     */
    value: (number|null);
}
/**
 * Context for the callback function to format the data label.
 */
export interface DataLabelsFormatterContextObject {
    /**
     * Stacked series and pies only. The point's percentage of the total.
     */
    percentage?: number;
    /**
     * The point object. The point name, if defined, is available through
     * `this.point.name`.
     */
    point: Point;
    /**
     * The series object. The series name is available through
     * `this.series.name`.
     */
    series: Series;
    /**
     * Stacked series only. The total value at this point's x value.
     */
    total?: number;
    /**
     * The x value.
     */
    x: number;
    /**
     * The y value.
     */
    y: (number|null);
}
/**
 * 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.
 */
export interface DataLabelsOptionsObject {
    /**
     * 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);
    /**
     * 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;
    /**
     * The background color or gradient for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * The border color for the data label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * The border radius in pixels for the data label.
     */
    borderRadius?: number;
    /**
     * The border width in pixels for the data label.
     */
    borderWidth?: number;
    /**
     * 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;
    /**
     * 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);
    /**
     * 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.
     */
    defer?: boolean;
    /**
     * Enable or disable the data labels.
     */
    enabled?: boolean;
    /**
     * 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;
    /**
     * A format string for the data label. Available variables are the same as
     * for `formatter`.
     */
    format?: string;
    /**
     * 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;
    /**
     * 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;
    /**
     * 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);
    /**
     * 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;
    /**
     * 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;
    /**
     * When either the `borderWidth` or the `backgroundColor` is set, this is
     * the padding within the box.
     */
    padding?: number;
    /**
     * 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;
    /**
     * 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);
    /**
     * The name of a symbol to use for the border around the label. Symbols are
     * predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * 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;
    /**
     * 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;
    /**
     * Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * 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);
    /**
     * The x position offset of the label relative to the point in pixels.
     */
    x?: number;
    /**
     * The y position offset of the label relative to the point in pixels.
     */
    y?: number;
    /**
     * 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.
     */
    zIndex?: number;
}
/**
 * Options for a label text which should follow marker's shape. **Note:** Only
 * SVG-based renderer supports this option.
 */
export interface DataLabelsTextPathOptionsObject {
    /**
     * Presentation attributes for the text path.
     */
    attributes?: SVGAttributes;
    /**
     * 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);
}
/**
 * Generic dictionary in TypeScript notation.
 */
export interface Dictionary<T> {
    [key: string]: T;
}
/**
 * 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 corresponing
     * 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|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?: any;
}
/**
 * (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 ExportingButtonsContextButtonOptions {
    /**
     * (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) 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 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) 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 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) 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?: ExportingButtonsContextButtonOptions;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for exporting data to CSV or
 * ExCel, or displaying the data in a HTML table or a JavaScript structure.
 * Requires the `export-data.js` module. 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) 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?: (object|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<ExportingButtonsContextButtonOptions>);
    /**
     * (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. Requires the `export-data.js` module. 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
     */
    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) Export-data module required.
     * 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) Export-data module required.
     * 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) Export-data module required. 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) Export-data module required. 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;
}
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;
}
/**
 * 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) 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;
    chartHeading?: 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;
    legendItem?: string;
    legendLabel?: string;
    mapZoomIn?: string;
    mapZoomOut?: string;
    rangeSelectorButton?: string;
    rangeSelectorMaxInput?: string;
    rangeSelectorMinInput?: string;
    resetZoomButton?: string;
    screenReaderRegionLabel?: string;
    /**
     * (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) Label for the end of the chart.
     * Announced by screen readers.
     */
    svgContainerEnd?: string;
    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;
    tableSummary?: string;
    /**
     * (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;
    viewAsDataTable?: 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 after the main summary if present.
     */
    description?: 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) 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?: (object|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) Export-data module only. 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) Export-data module only. 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) 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?: (object|LangNavigationOptions);
    /**
     * (Highcharts, Highstock) The text to display when the chart contains no
     * data. Requires the no-data module, see noData.
     */
    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) Export-data module only. The
     * text for the menu item.
     */
    openInCloud?: 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?: (object|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) Export-data module only. The
     * text for the menu item.
     */
    viewData?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Exporting module only. 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?: any;
}
/**
 * (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?: any;
    /**
     * (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. Requires
 * `highcharts-more.js`.
 */
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?: any;
}
/**
 * (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|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?: (object|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. Requires `highcharts-more.js`.
     */
    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 from 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;
}
/**
 * A mock point configuration.
 */
export interface MockPointOptionsObject {
    /**
     * x value for the point in xAxis scale or pixels
     */
    x: number;
    /**
     * xAxis index or id
     */
    xAxis?: (number|string|Axis);
    /**
     * y value for the point in yAxis scale or pixels
     */
    y: number;
    /**
     * yAxis index or id
     */
    yAxis: any;
}
/**
 * (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 NavigationAnnotationsControlPointOptions {
    height?: number;
    positioner?: any;
    style?: NavigationAnnotationsControlPointStyleOptions;
    symbol?: string;
    visible?: boolean;
    width?: number;
}
export interface NavigationAnnotationsControlPointStyleOptions {
    fill?: string;
    stroke?: string;
    "stroke-width"?: 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) 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) 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) 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) 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|MockPointOptionsObject|NavigationAnnotationsLabelsPointOptions);
    /**
     * (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) 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.
 */
export interface NavigationAnnotationsLabelsPointOptions {
    /**
     * (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);
    /**
     * (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);
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Additional options to be merged into
 * all annotations.
 */
export interface NavigationAnnotationsOptions {
    /**
     * (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?: (object|NavigationAnnotationsControlPointOptions);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Allow an annotation to be
     * draggable by a user. Possible values are `"x"`, `"xy"`, `"y"` and `""`
     * (disabled).
     */
    draggable?: OptionsDraggableValue;
    /**
     * (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) 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 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) 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|MockPointOptionsObject|NavigationAnnotationsShapesPointOptions);
    /**
     * (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?: (NavigationAnnotationsShapesPointsOptions|Array<(string|MockPointOptionsObject)>);
    /**
     * (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 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) 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.
 */
export interface NavigationAnnotationsShapesPointOptions {
    /**
     * (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);
    /**
     * (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);
}
/**
 * (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 NavigationAnnotationsShapesPointsOptions {
    /**
     * (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);
    /**
     * (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);
}
/**
 * (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?: StockToolsBindingsObject;
    /**
     * (Highstock) A ray with an arrow annotation bindings. Includes `start` and
     * one event in `steps` array.
     */
    arrowRay?: StockToolsBindingsObject;
    /**
     * (Highstock) A segment with an arrow annotation bindings. Includes `start`
     * and one event in `steps` array.
     */
    arrowSegment?: StockToolsBindingsObject;
    /**
     * (Highcharts, Highstock) A circle annotation bindings. Includes `start`
     * and one event in `steps` array.
     */
    circleAnnotation?: StockToolsBindingsObject;
    /**
     * (Highstock) Crooked line (three points) annotation bindings. Includes
     * `start` and two events in `steps` (for second and third points in crooked
     * line) array.
     */
    crooked3?: StockToolsBindingsObject;
    /**
     * (Highstock) Crooked line (five points) annotation bindings. Includes
     * `start` and four events in `steps` (for all consequent points in crooked
     * line) array.
     */
    crooked5?: StockToolsBindingsObject;
    /**
     * (Highstock) Hides/shows two price indicators:
     *
     * - last price in the dataset
     *
     * - last price in the selected range
     */
    currentPriceIndicator?: StockToolsBindingsObject;
    /**
     * (Highstock) Elliott wave (three points) annotation bindings. Includes
     * `start` and two events in `steps` (for second and third points) array.
     */
    elliott3?: StockToolsBindingsObject;
    /**
     * (Highstock) Elliott wave (five points) annotation bindings. Includes
     * `start` and four event in `steps` (for all consequent points in Elliott
     * wave) array.
     */
    elliott5?: StockToolsBindingsObject;
    /**
     * (Highstock) A fibonacci annotation bindings. Includes `start` and two
     * events in `steps` array (updates second point, then height).
     */
    fibonacci?: StockToolsBindingsObject;
    /**
     * (Highstock) A flag series bindings. Includes `start` event. On click,
     * finds the closest point and marks it with a flag with `'circlepin'`
     * shape.
     */
    flagCirclepin?: StockToolsBindingsObject;
    /**
     * (Highstock) A flag series bindings. Includes `start` event. On click,
     * finds the closest point and marks it with a flag with `'diamondpin'`
     * shape.
     */
    flagDiamondpin?: StockToolsBindingsObject;
    /**
     * (Highstock) A flag series bindings. Includes `start` event. On click,
     * finds the closest point and marks it with a flag without pin shape.
     */
    flagSimplepin?: StockToolsBindingsObject;
    /**
     * (Highstock) A flag series bindings. Includes `start` event. On click,
     * finds the closest point and marks it with a flag with `'squarepin'`
     * shape.
     */
    flagSquarepin?: StockToolsBindingsObject;
    /**
     * (Highstock) Displays chart in fullscreen.
     */
    fullScreen?: StockToolsBindingsObject;
    /**
     * (Highstock) A horizontal line annotation. Includes `start` event.
     */
    horizontalLine?: StockToolsBindingsObject;
    /**
     * (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?: StockToolsBindingsObject;
    /**
     * (Highstock) A line annotation. Includes `start` and one event in `steps`
     * array.
     */
    infinityLine?: StockToolsBindingsObject;
    /**
     * (Highcharts, Highstock) A label annotation bindings. Includes `start`
     * event only.
     */
    labelAnnotation?: StockToolsBindingsObject;
    /**
     * (Highstock) A measure (x-dimension) annotation bindings. Includes `start`
     * and one event in `steps` array.
     */
    measureX?: StockToolsBindingsObject;
    /**
     * (Highstock) A measure (xy-dimension) annotation bindings. Includes
     * `start` and one event in `steps` array.
     */
    measureXY?: StockToolsBindingsObject;
    /**
     * (Highstock) A measure (y-dimension) annotation bindings. Includes `start`
     * and one event in `steps` array.
     */
    measureY?: StockToolsBindingsObject;
    /**
     * (Highstock) A parallel channel (tunnel) annotation bindings. Includes
     * `start` and two events in `steps` array (updates second point, then
     * height).
     */
    parallelChannel?: StockToolsBindingsObject;
    /**
     * (Highstock) An Andrew's pitchfork annotation bindings. Includes `start`
     * and two events in `steps` array (sets second and third control points).
     */
    pitchfork?: StockToolsBindingsObject;
    /**
     * (Highstock) A ray annotation bindings. Includes `start` and one event in
     * `steps` array.
     */
    ray?: StockToolsBindingsObject;
    /**
     * (Highcharts, Highstock) A rectangle annotation bindings. Includes `start`
     * and one event in `steps` array.
     */
    rectangleAnnotation?: StockToolsBindingsObject;
    /**
     * (Highstock) Save a chart in localStorage under `highcharts-chart` key.
     * Stored items:
     *
     * - annotations
     *
     * - indicators (with yAxes)
     *
     * - flags
     */
    saveChart?: StockToolsBindingsObject;
    /**
     * (Highstock) A segment annotation bindings. Includes `start` and one event
     * in `steps` array.
     */
    segment?: StockToolsBindingsObject;
    /**
     * (Highstock) Changes main series to `'candlestick'` type.
     */
    seriesTypeCandlestick?: StockToolsBindingsObject;
    /**
     * (Highstock) Changes main series to `'line'` type.
     */
    seriesTypeLine?: StockToolsBindingsObject;
    /**
     * (Highstock) Changes main series to `'ohlc'` type.
     */
    seriesTypeOhlc?: StockToolsBindingsObject;
    /**
     * (Highstock) Hides/shows all annotations on a chart.
     */
    toggleAnnotations?: StockToolsBindingsObject;
    /**
     * (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?: StockToolsBindingsObject;
    /**
     * (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?: StockToolsBindingsObject;
    /**
     * (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?: StockToolsBindingsObject;
    /**
     * (Highstock) A vertical line annotation. Includes `start` event.
     */
    verticalLine?: StockToolsBindingsObject;
    /**
     * (Highstock) Enables zooming in xAxis on a chart. Includes `start` event
     * which changes chart.zoomType.
     */
    zoomX?: StockToolsBindingsObject;
    /**
     * (Highstock) Enables zooming in xAxis and yAxis on a chart. Includes
     * `start` event which changes chart.zoomType.
     */
    zoomXY?: StockToolsBindingsObject;
    /**
     * (Highstock) Enables zooming in yAxis on a chart. Includes `start` event
     * which changes chart.zoomType.
     */
    zoomY?: StockToolsBindingsObject;
}
/**
 * (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) Whether to enable buttons.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fill color for the symbol within
     * the button.
     */
    symbolFill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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) 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 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) Event fired when button state should change, for
     * example after adding an annotation.
     */
    deselectButton?: Function;
    /**
     * (Highcharts, Highstock) A `hidePopop` event. Fired when Popup should be
     * hidden, for exampole when clicking on an annotation again.
     */
    hidePopup?: 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<StockToolsBindingsObject>);
    /**
     * (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?: any;
    /**
     * (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?: number;
    /**
     * (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);
    /**
     * (Highstock, Gantt) Options for the navigator X axis. Default series
     * options for the navigator xAxis are:
     *
     *  (see online documentation for example)
     */
    xAxis?: NavigatorXAxisOptions;
    /**
     * (Highstock, Gantt) Options for the navigator Y axis. Default series
     * options for the navigator yAxis are:
     *
     *  (see online documentation for example)
     */
    yAxis?: NavigatorYAxisOptions;
}
/**
 * (Highstock) Data grouping options for the navigator series.
 */
export interface NavigatorSeriesDataGroupingOptions {
    /**
     * (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;
    /**
     * (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)]>;
}
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?: NavigatorSeriesDataGroupingOptions;
    /**
     * (Highstock, Gantt) Data label options for the navigator series. Data
     * labels are disabled by default on the navigator series.
     */
    dataLabels?: any;
    /**
     * (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;
    pointRange?: number;
    /**
     * (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. Defaults to
     * `areaspline` if defined, otherwise `line`.
     */
    type?: string;
}
/**
 * (Highstock, Gantt) Accessibility options for an axis. Requires the
 * accessibility module.
 */
export interface NavigatorXAxisAccessibilityOptions {
    /**
     * (Highstock, Gantt) Description for an axis to expose to screen reader
     * users.
     */
    description?: string;
    /**
     * (Highstock, Gantt) 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;
    /**
     * (Highstock, Gantt) Range description for an axis. Overrides the default
     * range description. Set to empty to disable range description for this
     * axis.
     */
    rangeDescription?: 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;
}
/**
 * (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 NavigatorXAxisCrosshairLabelOptions {
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border color for the crosshair label
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border corner radius of the crosshair label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width for the crosshair label.
     */
    borderWidth?: number;
    /**
     * (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;
}
/**
 * (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.
 */
export interface NavigatorXAxisCrosshairOptions {
    /**
     * (Highstock, Gantt) A class name for the crosshair, especially as a hook
     * for styling.
     */
    className?: string;
    /**
     * (Highstock, 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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) The dash style for the crosshair. See 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?: NavigatorXAxisCrosshairLabelOptions;
    /**
     * (Highstock, Gantt) Whether the crosshair should snap to the point or
     * follow the pointer independent of points.
     */
    snap?: boolean;
    /**
     * (Highstock, 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;
    /**
     * (Highstock, 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) 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;
}
/**
 * (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 NavigatorXAxisCurrentDateIndicatorOptions {
    /**
     * (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?: NavigatorXAxisCurrentDateIndicatorEventsOptions;
    /**
     * (Gantt) An id used for identifying the plot line in Axis.removePlotLine.
     */
    id?: string;
    /**
     * (Gantt) Text labels for the plot bands
     */
    label?: NavigatorXAxisCurrentDateIndicatorLabelOptions;
    /**
     * (Gantt) The width or thickness of the plot line.
     */
    width?: number;
    /**
     * (Gantt) The z index of the plot line within the chart.
     */
    zIndex?: number;
}
export interface NavigatorXAxisDateTimeLabelFormatsDayOptions {
    main?: string;
}
export interface NavigatorXAxisDateTimeLabelFormatsHourOptions {
    main?: string;
    range?: boolean;
}
export interface NavigatorXAxisDateTimeLabelFormatsMillisecondOptions {
    main?: string;
    range?: boolean;
}
export interface NavigatorXAxisDateTimeLabelFormatsMinuteOptions {
    main?: string;
    range?: boolean;
}
export interface NavigatorXAxisDateTimeLabelFormatsMonthOptions {
    main?: string;
}
/**
 * (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 NavigatorXAxisDateTimeLabelFormatsOptions {
    day?: (string|NavigatorXAxisDateTimeLabelFormatsDayOptions);
    hour?: (string|NavigatorXAxisDateTimeLabelFormatsHourOptions);
    millisecond?: (string|NavigatorXAxisDateTimeLabelFormatsMillisecondOptions);
    minute?: (string|NavigatorXAxisDateTimeLabelFormatsMinuteOptions);
    month?: (string|NavigatorXAxisDateTimeLabelFormatsMonthOptions);
    second?: (string|NavigatorXAxisDateTimeLabelFormatsSecondOptions);
    week?: (string|NavigatorXAxisDateTimeLabelFormatsWeekOptions);
    year?: (string|NavigatorXAxisDateTimeLabelFormatsYearOptions);
}
export interface NavigatorXAxisDateTimeLabelFormatsSecondOptions {
    main?: string;
    range?: boolean;
}
export interface NavigatorXAxisDateTimeLabelFormatsWeekOptions {
    main?: string;
}
export interface NavigatorXAxisDateTimeLabelFormatsYearOptions {
    main?: string;
}
/**
 * (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.
     */
    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.
 */
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?: FormatterCallbackFunction<AxisLabelsFormatterContextObject>;
    /**
     * (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 the label relative to the
     * tick position on the axis.
     */
    x?: number;
    /**
     * (Highstock, Gantt) The y position offset of the label relative to the
     * tick position on the axis. The default makes it adapt to the font size on
     * 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?: (object|NavigatorXAxisAccessibilityOptions);
    /**
     * (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?: (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.
     */
    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:
     *
     *  (see online documentation for example)
     */
    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|NavigatorXAxisCrosshairOptions);
    /**
     * (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|NavigatorXAxisCurrentDateIndicatorOptions);
    /**
     * (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?: NavigatorXAxisDateTimeLabelFormatsOptions;
    /**
     * (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;
    /**
     * (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.
     */
    labels?: NavigatorXAxisLabelsOptions;
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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, 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;
    /**
     * (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 text markup like <b>, <i> and spans 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;
}
/**
 * (Highstock, Gantt) Accessibility options for an axis. Requires the
 * accessibility module.
 */
export interface NavigatorYAxisAccessibilityOptions {
    /**
     * (Highstock, Gantt) Description for an axis to expose to screen reader
     * users.
     */
    description?: string;
    /**
     * (Highstock, Gantt) 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;
    /**
     * (Highstock, Gantt) Range description for an axis. Overrides the default
     * range description. Set to empty to disable range description for this
     * axis.
     */
    rangeDescription?: 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 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) A label on the axis next to the crosshair.
 *
 * In styled mode, the label is styled with the `.highcharts-crosshair-label`
 * class.
 */
export interface NavigatorYAxisCrosshairLabelOptions {
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border color for the crosshair label
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border corner radius of the crosshair label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width for the crosshair label.
     */
    borderWidth?: number;
    /**
     * (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;
}
/**
 * (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.
 */
export interface NavigatorYAxisCrosshairOptions {
    /**
     * (Highstock, Gantt) A class name for the crosshair, especially as a hook
     * for styling.
     */
    className?: string;
    /**
     * (Highstock, 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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) The dash style for the crosshair. See 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?: NavigatorYAxisCrosshairLabelOptions;
    /**
     * (Highstock, Gantt) Whether the crosshair should snap to the point or
     * follow the pointer independent of points.
     */
    snap?: boolean;
    /**
     * (Highstock, 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;
    /**
     * (Highstock, 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;
}
export interface NavigatorYAxisDateTimeLabelFormatsDayOptions {
    main?: string;
}
export interface NavigatorYAxisDateTimeLabelFormatsHourOptions {
    main?: string;
    range?: boolean;
}
export interface NavigatorYAxisDateTimeLabelFormatsMillisecondOptions {
    main?: string;
    range?: boolean;
}
export interface NavigatorYAxisDateTimeLabelFormatsMinuteOptions {
    main?: string;
    range?: boolean;
}
export interface NavigatorYAxisDateTimeLabelFormatsMonthOptions {
    main?: string;
}
/**
 * (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 NavigatorYAxisDateTimeLabelFormatsOptions {
    day?: (string|NavigatorYAxisDateTimeLabelFormatsDayOptions);
    hour?: (string|NavigatorYAxisDateTimeLabelFormatsHourOptions);
    millisecond?: (string|NavigatorYAxisDateTimeLabelFormatsMillisecondOptions);
    minute?: (string|NavigatorYAxisDateTimeLabelFormatsMinuteOptions);
    month?: (string|NavigatorYAxisDateTimeLabelFormatsMonthOptions);
    second?: (string|NavigatorYAxisDateTimeLabelFormatsSecondOptions);
    week?: (string|NavigatorYAxisDateTimeLabelFormatsWeekOptions);
    year?: (string|NavigatorYAxisDateTimeLabelFormatsYearOptions);
}
export interface NavigatorYAxisDateTimeLabelFormatsSecondOptions {
    main?: string;
    range?: boolean;
}
export interface NavigatorYAxisDateTimeLabelFormatsWeekOptions {
    main?: string;
}
export interface NavigatorYAxisDateTimeLabelFormatsYearOptions {
    main?: string;
}
/**
 * (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.
     */
    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.
 */
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?: FormatterCallbackFunction<AxisLabelsFormatterContextObject>;
    /**
     * (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 the label relative to the
     * tick position on the axis. Defaults to -15 for left axis, 15 for right
     * axis.
     */
    x?: number;
    /**
     * (Highstock, Gantt) The y position offset of the label relative to the
     * tick position on the axis.
     */
    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?: (object|NavigatorYAxisAccessibilityOptions);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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.
     */
    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:
     *
     *  (see online documentation for example)
     */
    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|NavigatorYAxisCrosshairOptions);
    /**
     * (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?: NavigatorYAxisDateTimeLabelFormatsOptions;
    /**
     * (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?: 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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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`.
     */
    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.
     */
    labels?: NavigatorYAxisLabelsOptions;
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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 objects defining plot bands on
     * the Y axis.
     */
    plotBands?: Array<NavigatorYAxisPlotBandsOptions>;
    /**
     * (Highcharts, Highstock, Gantt) An array of objects representing plot
     * lines on the X axis
     */
    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.
     */
    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, 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;
    /**
     * (Highstock, Gantt) Color for the main tick marks.
     *
     * In styled mode, the stroke is given in the `.highcharts-tick` class.
     */
    tickColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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;
    /**
     * (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 objects defining plot bands on the
 * Y axis.
 */
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 objects representing plot lines on
 * the X axis
 */
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) 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) 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?: any;
    /**
     * (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) Styled mode only. Configuration
     * object for adding SVG definitions for reusable elements. See gradients,
     * shadows and patterns for more information and code examples.
     */
    defs?: any;
    /**
     * (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?: (object|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?: GradientColorObject;
    /**
     * (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 size of the pane, either as a number defining pixels, or
     * a percentage defining a percentage of the plot are.
     */
    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|AnimationOptionsObject);
    /**
     * Pattern options
     */
    pattern: PatternOptionsObject;
}
/**
 * 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;
    /**
     * 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);
    /**
     * 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) Keyboard navigation for a series
 */
export interface PlotAbandsAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotAbandsAccessibilityOptions {
    /**
     * (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?: (object|PlotAbandsAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
export interface PlotAbandsBottomLineOptions {
    styles?: PlotAbandsBottomLineStylesOptions;
}
export interface PlotAbandsBottomLineStylesOptions {
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotAbandsConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotAbandsConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotAbandsConnectorsOptions {
    /**
     * (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?: PlotAbandsConnectorsEndMarkerOptions;
    /**
     * (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?: PlotAbandsConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotAbandsConnectorsStartMarkerOptions;
    /**
     * (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 PlotAbandsConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotAbandsDataGroupingOptions {
    /**
     * (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;
    /**
     * (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)]>;
}
/**
 * (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 PlotAbandsEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotAbandsLabelOptions {
    /**
     * (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) 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 PlotAbandsLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotAbandsLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotAbandsLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotAbandsLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotAbandsMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotAbandsMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotAbandsMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotAbandsMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotAbandsMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotAbandsMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotAbandsMarkerStatesHoverOptions;
    inactive?: PlotAbandsMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotAbandsMarkerStatesNormalOptions;
    /**
     * (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?: PlotAbandsMarkerStatesSelectOptions;
}
/**
 * (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 PlotAbandsMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotAbandsAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotAbandsAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotAbandsConnectorsOptions;
    /**
     * (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 name for 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?: PlotAbandsDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotAbandsEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotAbandsLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotAbandsLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotAbandsLastVisiblePriceOptions;
    /**
     * (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?: PlotAbandsMarkerOptions;
    /**
     * (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.
     */
    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?: PlotAbandsPointOptions;
    /**
     * (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?: PlotAbandsStatesOptions;
    /**
     * (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.
     */
    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?: PlotAbandsTooltipOptions;
    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.
     */
    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<PlotAbandsZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotAbandsPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotAbandsPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotAbandsPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAbandsStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAbandsStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotAbandsStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAbandsStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotAbandsStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotAbandsStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotAbandsStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAbandsStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotAbandsStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotAbandsStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotAbandsStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotAbandsStatesInactiveOptions;
    /**
     * (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?: PlotAbandsStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotAbandsStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAbandsStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAbandsStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotAbandsStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotAbandsStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotAbandsStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotAbandsTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotAbandsTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotAbandsTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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;
}
export interface PlotAbandsTopLineOptions {
    styles?: PlotAbandsTopLineStylesOptions;
}
export interface PlotAbandsTopLineStylesOptions {
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: 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).
 */
export interface PlotAbandsZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotAdAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotAdAccessibilityOptions {
    /**
     * (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?: (object|PlotAdAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotAdConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotAdConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotAdConnectorsOptions {
    /**
     * (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?: PlotAdConnectorsEndMarkerOptions;
    /**
     * (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?: PlotAdConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotAdConnectorsStartMarkerOptions;
    /**
     * (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 PlotAdConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotAdDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotAdEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotAdLabelOptions {
    /**
     * (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) 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 PlotAdLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotAdLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotAdLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotAdLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotAdMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotAdMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotAdMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotAdMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotAdMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotAdMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotAdMarkerStatesHoverOptions;
    inactive?: PlotAdMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotAdMarkerStatesNormalOptions;
    /**
     * (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?: PlotAdMarkerStatesSelectOptions;
}
/**
 * (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 PlotAdMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotAdAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotAdAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotAdConnectorsOptions;
    /**
     * (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 name for 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?: PlotAdDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotAdEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotAdLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotAdLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotAdLastVisiblePriceOptions;
    /**
     * (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?: PlotAdMarkerOptions;
    /**
     * (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.
     */
    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?: PlotAdPointOptions;
    /**
     * (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?: PlotAdStatesOptions;
    /**
     * (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.
     */
    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?: PlotAdTooltipOptions;
    /**
     * (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.
     */
    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<PlotAdZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotAdPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotAdPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotAdPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAdStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAdStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotAdStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAdStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotAdStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotAdStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotAdStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAdStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotAdStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotAdStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotAdStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotAdStatesInactiveOptions;
    /**
     * (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?: PlotAdStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotAdStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAdStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAdStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotAdStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotAdStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotAdStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotAdTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotAdTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotAdTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotAdZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotAoAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotAoAccessibilityOptions {
    /**
     * (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?: (object|PlotAoAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotAoConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotAoConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotAoConnectorsOptions {
    /**
     * (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?: PlotAoConnectorsEndMarkerOptions;
    /**
     * (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?: PlotAoConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotAoConnectorsStartMarkerOptions;
    /**
     * (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 PlotAoConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotAoDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotAoEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotAoLabelOptions {
    /**
     * (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) 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 PlotAoLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotAoLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotAoLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotAoLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotAoMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotAoMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotAoMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotAoMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotAoMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotAoMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotAoMarkerStatesHoverOptions;
    inactive?: PlotAoMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotAoMarkerStatesNormalOptions;
    /**
     * (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?: PlotAoMarkerStatesSelectOptions;
}
/**
 * (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 PlotAoMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotAoAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotAoAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotAoConnectorsOptions;
    /**
     * (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 name for 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?: PlotAoDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotAoEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotAoLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotAoLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotAoLastVisiblePriceOptions;
    /**
     * (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?: PlotAoMarkerOptions;
    /**
     * (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.
     */
    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?: PlotAoPointOptions;
    /**
     * (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?: PlotAoStatesOptions;
    /**
     * (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.
     */
    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?: PlotAoTooltipOptions;
    /**
     * (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.
     */
    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<PlotAoZonesOptions>;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotAoPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotAoPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotAoPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAoStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAoStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotAoStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAoStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: PlotAoStatesHoverHaloOptions;
    /**
     * (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) The animation for entering the inactive state.
 */
export interface PlotAoStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotAoStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAoStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotAoStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotAoStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotAoStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotAoStatesInactiveOptions;
    /**
     * (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?: PlotAoStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotAoStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAoStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAoStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotAoStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotAoStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotAoStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotAoTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotAoTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotAoTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotAoZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotApoAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotApoAccessibilityOptions {
    /**
     * (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?: (object|PlotApoAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotApoConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotApoConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotApoConnectorsOptions {
    /**
     * (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?: PlotApoConnectorsEndMarkerOptions;
    /**
     * (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?: PlotApoConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotApoConnectorsStartMarkerOptions;
    /**
     * (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 PlotApoConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotApoDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotApoEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotApoLabelOptions {
    /**
     * (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) 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 PlotApoLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotApoLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotApoLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotApoLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotApoMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotApoMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotApoMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotApoMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotApoMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotApoMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotApoMarkerStatesHoverOptions;
    inactive?: PlotApoMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotApoMarkerStatesNormalOptions;
    /**
     * (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?: PlotApoMarkerStatesSelectOptions;
}
/**
 * (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 PlotApoMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotApoAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotApoAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotApoConnectorsOptions;
    /**
     * (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 name for 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?: PlotApoDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotApoEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotApoLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotApoLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotApoLastVisiblePriceOptions;
    /**
     * (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?: PlotApoMarkerOptions;
    /**
     * (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.
     */
    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?: PlotApoPointOptions;
    /**
     * (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?: PlotApoStatesOptions;
    /**
     * (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.
     */
    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?: PlotApoTooltipOptions;
    /**
     * (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.
     */
    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<PlotApoZonesOptions>;
}
/**
 * (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>;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotApoPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotApoPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotApoPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotApoStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotApoStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotApoStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotApoStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotApoStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotApoStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotApoStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotApoStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotApoStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotApoStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotApoStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotApoStatesInactiveOptions;
    /**
     * (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?: PlotApoStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotApoStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotApoStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotApoStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotApoStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotApoStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotApoStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotApoTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotApoTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotApoTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotApoZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotAreaAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotAreaAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotAreaAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotAreaConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotAreaConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotAreaConnectorsOptions {
    /**
     * (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?: PlotAreaConnectorsEndMarkerOptions;
    /**
     * (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?: PlotAreaConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotAreaConnectorsStartMarkerOptions;
    /**
     * (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 PlotAreaConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotAreaDataGroupingOptions {
    /**
     * (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?: (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) Options for the drag handles.
 */
export interface PlotAreaDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotAreaDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotAreaDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotAreaDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotAreaDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotAreaDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotAreaEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotAreaLabelOptions {
    /**
     * (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) 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 PlotAreaLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotAreaLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotAreaLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotAreaLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotAreaMarkerOptions {
    /**
     * (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, 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?: (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?: PlotAreaMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface PlotAreaMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface PlotAreaMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 PlotAreaMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface PlotAreaMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: PlotAreaMarkerStatesHoverOptions;
    inactive?: PlotAreaMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: PlotAreaMarkerStatesNormalOptions;
    /**
     * (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?: PlotAreaMarkerStatesSelectOptions;
}
/**
 * (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 PlotAreaMarkerStatesSelectOptions {
    /**
     * (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, 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, 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotAreaAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotAreaAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotAreaConnectorsOptions;
    /**
     * (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 name for 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?: PlotAreaDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotAreaDragDropOptions;
    /**
     * (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?: PlotAreaEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotAreaLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotAreaLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotAreaLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotAreaMarkerOptions;
    /**
     * (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.
     */
    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?: PlotAreaPointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotAreaStatesOptions;
    /**
     * (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.
     */
    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
     * corresponing Y axis extreme is filled (since v6.1.0).
     */
    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?: PlotAreaTooltipOptions;
    /**
     * (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.
     */
    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<PlotAreaZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotAreaPointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotAreaPointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotAreaPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotArearangeAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotArearangeAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotArearangeAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotArearangeConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotArearangeConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotArearangeConnectorsOptions {
    /**
     * (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?: PlotArearangeConnectorsEndMarkerOptions;
    /**
     * (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?: PlotArearangeConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotArearangeConnectorsStartMarkerOptions;
    /**
     * (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 PlotArearangeConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotArearangeDataGroupingOptions {
    /**
     * (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?: (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) Options for the drag handles.
 */
export interface PlotArearangeDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotArearangeDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotArearangeDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotArearangeDragDropOptions {
    /**
     * (Highcharts, Highstock) Allow high value to be dragged individually.
     * Requires `draggable-points` module.
     */
    draggableHigh?: boolean;
    /**
     * (Highcharts, Highstock) Allow low value to be dragged individually.
     * Requires `draggable-points` module.
     */
    draggableLow?: boolean;
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotArearangeDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotArearangeDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotArearangeEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotArearangeLabelOptions {
    /**
     * (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) 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 PlotArearangeLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotArearangeLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotArearangeLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotArearangeLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotArearangeMarkerOptions {
    /**
     * (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, 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?: (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?: PlotArearangeMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface PlotArearangeMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface PlotArearangeMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 PlotArearangeMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface PlotArearangeMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: PlotArearangeMarkerStatesHoverOptions;
    inactive?: PlotArearangeMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: PlotArearangeMarkerStatesNormalOptions;
    /**
     * (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?: PlotArearangeMarkerStatesSelectOptions;
}
/**
 * (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 PlotArearangeMarkerStatesSelectOptions {
    /**
     * (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, 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, 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. Requires `highcharts-more.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 `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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotArearangeAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotArearangeAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotArearangeConnectorsOptions;
    /**
     * (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 name for 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?: PlotArearangeDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: (SeriesAreaRangeDataLabelsOptionsObject|Array<SeriesAreaRangeDataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotArearangeDragDropOptions;
    /**
     * (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?: PlotArearangeEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotArearangeLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotArearangeLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotArearangeLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotArearangeMarkerOptions;
    /**
     * (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.
     */
    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?: PlotArearangePointOptions;
    /**
     * (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?: PlotArearangeStatesOptions;
    /**
     * (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.
     */
    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
     * corresponing Y axis extreme is filled (since v6.1.0).
     */
    threshold?: any;
    /**
     * (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?: PlotArearangeTooltipOptions;
    /**
     * (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.
     */
    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<PlotArearangeZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotArearangePointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotArearangePointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotArearangePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotArearangeStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotArearangeStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Options for the hovered series. These settings
 * override the normal state options when a series is moused over or touched.
 */
export interface PlotArearangeStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotArearangeStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts, 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?: (PlotArearangeStatesHoverHaloOptions|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;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotArearangeStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotArearangeStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotArearangeStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotArearangeStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotArearangeStatesOptions {
    /**
     * (Highcharts, Highstock) Options for the hovered series. These settings
     * override the normal state options when a series is moused over or
     * touched.
     */
    hover?: PlotArearangeStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotArearangeStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotArearangeStatesNormalOptions;
    /**
     * (Highcharts, Highstock) Specific options for point in selected states,
     * after being selected by allowPointSelect or programmatically.
     */
    select?: PlotArearangeStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotArearangeStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotArearangeStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Specific options for point in selected states, after
 * being selected by allowPointSelect or programmatically.
 */
export interface PlotArearangeStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotArearangeStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, 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?: (PlotArearangeStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotArearangeTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotArearangeTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotArearangeTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotArearangeZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotAreasplineAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotAreasplineAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotAreasplineAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotAreasplineConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotAreasplineConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotAreasplineConnectorsOptions {
    /**
     * (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?: PlotAreasplineConnectorsEndMarkerOptions;
    /**
     * (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?: PlotAreasplineConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotAreasplineConnectorsStartMarkerOptions;
    /**
     * (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 PlotAreasplineConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotAreasplineDataGroupingOptions {
    /**
     * (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?: (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) Options for the drag handles.
 */
export interface PlotAreasplineDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotAreasplineDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotAreasplineDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotAreasplineDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotAreasplineDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotAreasplineDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotAreasplineEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotAreasplineLabelOptions {
    /**
     * (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) 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 PlotAreasplineLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotAreasplineLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotAreasplineLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotAreasplineLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotAreasplineMarkerOptions {
    /**
     * (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, 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?: (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?: PlotAreasplineMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface PlotAreasplineMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface PlotAreasplineMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 PlotAreasplineMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface PlotAreasplineMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: PlotAreasplineMarkerStatesHoverOptions;
    inactive?: PlotAreasplineMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: PlotAreasplineMarkerStatesNormalOptions;
    /**
     * (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?: PlotAreasplineMarkerStatesSelectOptions;
}
/**
 * (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 PlotAreasplineMarkerStatesSelectOptions {
    /**
     * (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, 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, 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotAreasplineAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotAreasplineAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotAreasplineConnectorsOptions;
    /**
     * (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 name for 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?: PlotAreasplineDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotAreasplineDragDropOptions;
    /**
     * (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?: PlotAreasplineEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotAreasplineLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotAreasplineLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotAreasplineLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotAreasplineMarkerOptions;
    /**
     * (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.
     */
    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?: PlotAreasplinePointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotAreasplineStatesOptions;
    /**
     * (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.
     */
    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
     * corresponing Y axis extreme is filled (since v6.1.0).
     */
    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?: PlotAreasplineTooltipOptions;
    /**
     * (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.
     */
    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<PlotAreasplineZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotAreasplinePointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotAreasplinePointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotAreasplinePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotAreasplinerangeAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotAreasplinerangeAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotAreasplinerangeAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotAreasplinerangeConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotAreasplinerangeConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotAreasplinerangeConnectorsOptions {
    /**
     * (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?: PlotAreasplinerangeConnectorsEndMarkerOptions;
    /**
     * (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?: PlotAreasplinerangeConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotAreasplinerangeConnectorsStartMarkerOptions;
    /**
     * (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 PlotAreasplinerangeConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotAreasplinerangeDataGroupingOptions {
    /**
     * (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?: (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) Options for the drag handles.
 */
export interface PlotAreasplinerangeDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotAreasplinerangeDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotAreasplinerangeDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotAreasplinerangeDragDropOptions {
    /**
     * (Highcharts, Highstock) Allow high value to be dragged individually.
     * Requires `draggable-points` module.
     */
    draggableHigh?: boolean;
    /**
     * (Highcharts, Highstock) Allow low value to be dragged individually.
     * Requires `draggable-points` module.
     */
    draggableLow?: boolean;
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotAreasplinerangeDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotAreasplinerangeDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotAreasplinerangeEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotAreasplinerangeLabelOptions {
    /**
     * (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) 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 PlotAreasplinerangeLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotAreasplinerangeLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotAreasplinerangeLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotAreasplinerangeLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotAreasplinerangeMarkerOptions {
    /**
     * (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, 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?: (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?: PlotAreasplinerangeMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface PlotAreasplinerangeMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface PlotAreasplinerangeMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 PlotAreasplinerangeMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface PlotAreasplinerangeMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: PlotAreasplinerangeMarkerStatesHoverOptions;
    inactive?: PlotAreasplinerangeMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: PlotAreasplinerangeMarkerStatesNormalOptions;
    /**
     * (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?: PlotAreasplinerangeMarkerStatesSelectOptions;
}
/**
 * (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 PlotAreasplinerangeMarkerStatesSelectOptions {
    /**
     * (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, 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, 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. Requires
 * `highcharts-more.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 `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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotAreasplinerangeAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotAreasplinerangeAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotAreasplinerangeConnectorsOptions;
    /**
     * (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 name for 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?: PlotAreasplinerangeDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: (SeriesAreaRangeDataLabelsOptionsObject|Array<SeriesAreaRangeDataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotAreasplinerangeDragDropOptions;
    /**
     * (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?: PlotAreasplinerangeEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotAreasplinerangeLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotAreasplinerangeLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotAreasplinerangeLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotAreasplinerangeMarkerOptions;
    /**
     * (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.
     */
    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?: PlotAreasplinerangePointOptions;
    /**
     * (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?: PlotAreasplinerangeStatesOptions;
    /**
     * (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.
     */
    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
     * corresponing Y axis extreme is filled (since v6.1.0).
     */
    threshold?: any;
    /**
     * (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?: PlotAreasplinerangeTooltipOptions;
    /**
     * (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.
     */
    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<PlotAreasplinerangeZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotAreasplinerangePointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotAreasplinerangePointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotAreasplinerangePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAreasplinerangeStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAreasplinerangeStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Options for the hovered series. These settings
 * override the normal state options when a series is moused over or touched.
 */
export interface PlotAreasplinerangeStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAreasplinerangeStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts, 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?: (PlotAreasplinerangeStatesHoverHaloOptions|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;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotAreasplinerangeStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotAreasplinerangeStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAreasplinerangeStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotAreasplinerangeStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotAreasplinerangeStatesOptions {
    /**
     * (Highcharts, Highstock) Options for the hovered series. These settings
     * override the normal state options when a series is moused over or
     * touched.
     */
    hover?: PlotAreasplinerangeStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotAreasplinerangeStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotAreasplinerangeStatesNormalOptions;
    /**
     * (Highcharts, Highstock) Specific options for point in selected states,
     * after being selected by allowPointSelect or programmatically.
     */
    select?: PlotAreasplinerangeStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAreasplinerangeStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAreasplinerangeStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Specific options for point in selected states, after
 * being selected by allowPointSelect or programmatically.
 */
export interface PlotAreasplinerangeStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotAreasplinerangeStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, 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?: (PlotAreasplinerangeStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotAreasplinerangeTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotAreasplinerangeTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotAreasplinerangeTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotAreasplinerangeZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAreasplineStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAreasplineStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Options for the hovered series. These settings
 * override the normal state options when a series is moused over or touched.
 */
export interface PlotAreasplineStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAreasplineStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts, 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?: (PlotAreasplineStatesHoverHaloOptions|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;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotAreasplineStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotAreasplineStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAreasplineStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotAreasplineStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotAreasplineStatesOptions {
    /**
     * (Highcharts, Highstock) Options for the hovered series. These settings
     * override the normal state options when a series is moused over or
     * touched.
     */
    hover?: PlotAreasplineStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotAreasplineStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotAreasplineStatesNormalOptions;
    /**
     * (Highcharts, Highstock) Specific options for point in selected states,
     * after being selected by allowPointSelect or programmatically.
     */
    select?: PlotAreasplineStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAreasplineStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAreasplineStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Specific options for point in selected states, after
 * being selected by allowPointSelect or programmatically.
 */
export interface PlotAreasplineStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotAreasplineStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, 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?: (PlotAreasplineStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotAreasplineTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotAreasplineTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotAreasplineTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotAreasplineZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAreaStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAreaStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Options for the hovered series. These settings
 * override the normal state options when a series is moused over or touched.
 */
export interface PlotAreaStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAreaStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts, 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?: (PlotAreaStatesHoverHaloOptions|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;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotAreaStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotAreaStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAreaStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotAreaStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotAreaStatesOptions {
    /**
     * (Highcharts, Highstock) Options for the hovered series. These settings
     * override the normal state options when a series is moused over or
     * touched.
     */
    hover?: PlotAreaStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotAreaStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotAreaStatesNormalOptions;
    /**
     * (Highcharts, Highstock) Specific options for point in selected states,
     * after being selected by allowPointSelect or programmatically.
     */
    select?: PlotAreaStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAreaStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAreaStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Specific options for point in selected states, after
 * being selected by allowPointSelect or programmatically.
 */
export interface PlotAreaStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotAreaStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, 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?: (PlotAreaStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotAreaTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotAreaTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotAreaTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotAreaZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotAroonAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotAroonAccessibilityOptions {
    /**
     * (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?: (object|PlotAroonAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: 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;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotAroonConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotAroonConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotAroonConnectorsOptions {
    /**
     * (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?: PlotAroonConnectorsEndMarkerOptions;
    /**
     * (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?: PlotAroonConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotAroonConnectorsStartMarkerOptions;
    /**
     * (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 PlotAroonConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotAroonDataGroupingOptions {
    /**
     * (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;
    /**
     * (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)]>;
}
/**
 * (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 PlotAroonEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotAroonLabelOptions {
    /**
     * (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) 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 PlotAroonLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotAroonLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotAroonLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotAroonLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotAroonMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotAroonMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotAroonMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotAroonMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotAroonMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotAroonMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotAroonMarkerStatesHoverOptions;
    inactive?: PlotAroonMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotAroonMarkerStatesNormalOptions;
    /**
     * (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?: PlotAroonMarkerStatesSelectOptions;
}
/**
 * (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 PlotAroonMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotAroonAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotAroonAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotAroonConnectorsOptions;
    /**
     * (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 name for 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?: PlotAroonDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotAroonEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotAroonLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotAroonLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotAroonLastVisiblePriceOptions;
    /**
     * (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?: PlotAroonMarkerOptions;
    /**
     * (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.
     */
    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?: PlotAroonPointOptions;
    /**
     * (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?: PlotAroonStatesOptions;
    /**
     * (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.
     */
    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?: PlotAroonTooltipOptions;
    /**
     * (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.
     */
    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<PlotAroonZonesOptions>;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotAroonoscillatorAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotAroonoscillatorAccessibilityOptions {
    /**
     * (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?: (object|PlotAroonoscillatorAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotAroonoscillatorConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotAroonoscillatorConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotAroonoscillatorConnectorsOptions {
    /**
     * (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?: PlotAroonoscillatorConnectorsEndMarkerOptions;
    /**
     * (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?: PlotAroonoscillatorConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotAroonoscillatorConnectorsStartMarkerOptions;
    /**
     * (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 PlotAroonoscillatorConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotAroonoscillatorDataGroupingOptions {
    /**
     * (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;
    /**
     * (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)]>;
}
/**
 * (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 PlotAroonoscillatorEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotAroonoscillatorLabelOptions {
    /**
     * (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) 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 PlotAroonoscillatorLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotAroonoscillatorLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotAroonoscillatorLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotAroonoscillatorLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotAroonoscillatorMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotAroonoscillatorMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotAroonoscillatorMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotAroonoscillatorMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotAroonoscillatorMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotAroonoscillatorMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotAroonoscillatorMarkerStatesHoverOptions;
    inactive?: PlotAroonoscillatorMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotAroonoscillatorMarkerStatesNormalOptions;
    /**
     * (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?: PlotAroonoscillatorMarkerStatesSelectOptions;
}
/**
 * (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 PlotAroonoscillatorMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotAroonoscillatorAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotAroonoscillatorAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotAroonoscillatorConnectorsOptions;
    /**
     * (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 name for 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?: PlotAroonoscillatorDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotAroonoscillatorEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotAroonoscillatorLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotAroonoscillatorLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotAroonoscillatorLastVisiblePriceOptions;
    /**
     * (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?: PlotAroonoscillatorMarkerOptions;
    /**
     * (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.
     */
    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?: PlotAroonoscillatorPointOptions;
    /**
     * (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?: PlotAroonoscillatorStatesOptions;
    /**
     * (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.
     */
    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?: PlotAroonoscillatorTooltipOptions;
    /**
     * (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.
     */
    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<PlotAroonoscillatorZonesOptions>;
}
/**
 * (Highstock) Paramters used in calculation of aroon oscillator series points.
 */
export interface PlotAroonoscillatorParamsOptions {
    /**
     * (Highstock) Period for Aroon Oscillator
     */
    period?: number;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotAroonoscillatorPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotAroonoscillatorPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotAroonoscillatorPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAroonoscillatorStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAroonoscillatorStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotAroonoscillatorStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAroonoscillatorStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotAroonoscillatorStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotAroonoscillatorStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotAroonoscillatorStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAroonoscillatorStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotAroonoscillatorStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotAroonoscillatorStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotAroonoscillatorStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotAroonoscillatorStatesInactiveOptions;
    /**
     * (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?: PlotAroonoscillatorStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotAroonoscillatorStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAroonoscillatorStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAroonoscillatorStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotAroonoscillatorStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotAroonoscillatorStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotAroonoscillatorStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotAroonoscillatorTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotAroonoscillatorTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotAroonoscillatorTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotAroonoscillatorZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Paramters used in calculation of aroon series points.
 */
export interface PlotAroonParamsOptions {
    /**
     * (Highstock) Period for Aroon indicator
     */
    period?: number;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotAroonPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotAroonPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotAroonPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAroonStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAroonStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotAroonStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAroonStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotAroonStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotAroonStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotAroonStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAroonStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotAroonStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotAroonStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotAroonStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotAroonStatesInactiveOptions;
    /**
     * (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?: PlotAroonStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotAroonStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAroonStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAroonStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotAroonStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotAroonStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotAroonStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotAroonTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotAroonTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotAroonTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotAroonZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotAtrAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotAtrAccessibilityOptions {
    /**
     * (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?: (object|PlotAtrAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotAtrConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotAtrConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotAtrConnectorsOptions {
    /**
     * (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?: PlotAtrConnectorsEndMarkerOptions;
    /**
     * (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?: PlotAtrConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotAtrConnectorsStartMarkerOptions;
    /**
     * (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 PlotAtrConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotAtrDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotAtrEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotAtrLabelOptions {
    /**
     * (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) 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 PlotAtrLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotAtrLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotAtrLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotAtrLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotAtrMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotAtrMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotAtrMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotAtrMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotAtrMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotAtrMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotAtrMarkerStatesHoverOptions;
    inactive?: PlotAtrMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotAtrMarkerStatesNormalOptions;
    /**
     * (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?: PlotAtrMarkerStatesSelectOptions;
}
/**
 * (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 PlotAtrMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotAtrAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotAtrAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotAtrConnectorsOptions;
    /**
     * (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 name for 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?: PlotAtrDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotAtrEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotAtrLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotAtrLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotAtrLastVisiblePriceOptions;
    /**
     * (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?: PlotAtrMarkerOptions;
    /**
     * (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.
     */
    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?: PlotAtrPointOptions;
    /**
     * (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?: PlotAtrStatesOptions;
    /**
     * (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.
     */
    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?: PlotAtrTooltipOptions;
    /**
     * (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.
     */
    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<PlotAtrZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotAtrPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotAtrPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotAtrPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAtrStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAtrStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotAtrStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAtrStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotAtrStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotAtrStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotAtrStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotAtrStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotAtrStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotAtrStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotAtrStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotAtrStatesInactiveOptions;
    /**
     * (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?: PlotAtrStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotAtrStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotAtrStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotAtrStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotAtrStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotAtrStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotAtrStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotAtrTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotAtrTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotAtrTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotAtrZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotBarAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotBarAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotBarAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotBarConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotBarConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotBarConnectorsOptions {
    /**
     * (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?: PlotBarConnectorsEndMarkerOptions;
    /**
     * (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?: PlotBarConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotBarConnectorsStartMarkerOptions;
    /**
     * (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 PlotBarConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotBarDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) Options for the drag handles.
 */
export interface PlotBarDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface PlotBarDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotBarDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotBarDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: PlotBarDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotBarDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotBarEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotBarLabelOptions {
    /**
     * (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) 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 PlotBarLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotBarLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotBarLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotBarLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotBarAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotBarAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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) 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 (see online
     * documentation for example) 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?: PlotBarConnectorsOptions;
    /**
     * (Highcharts, Highstock, Gantt) When true, each 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);
    /**
     * (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?: PlotBarDataGroupingOptions;
    /**
     * (Highcharts) 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?: any;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotBarDragDropOptions;
    /**
     * (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?: PlotBarEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    groupZPadding?: number;
    /**
     * (Highcharts) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotBarLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotBarLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotBarLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotBarPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotBarStatesOptions;
    /**
     * (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.
     */
    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;
    /**
     * (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?: PlotBarTooltipOptions;
    /**
     * (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.
     */
    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<PlotBarZonesOptions>;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotBarPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotBarPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotBarPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotBarStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotBarStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotBarStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotBarStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotBarStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotBarStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotBarStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotBarStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotBarStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotBarStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotBarStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotBarStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotBarStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotBarStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotBarStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotBarTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotBarTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotBarTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) 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 PlotBarZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotBbAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotBbAccessibilityOptions {
    /**
     * (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?: (object|PlotBbAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: 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;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotBbConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotBbConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotBbConnectorsOptions {
    /**
     * (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?: PlotBbConnectorsEndMarkerOptions;
    /**
     * (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?: PlotBbConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotBbConnectorsStartMarkerOptions;
    /**
     * (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 PlotBbConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotBbDataGroupingOptions {
    /**
     * (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;
    /**
     * (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)]>;
}
/**
 * (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 PlotBbEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotBbLabelOptions {
    /**
     * (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) 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 PlotBbLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotBbLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotBbLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotBbLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotBbMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotBbMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotBbMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotBbMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotBbMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotBbMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotBbMarkerStatesHoverOptions;
    inactive?: PlotBbMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotBbMarkerStatesNormalOptions;
    /**
     * (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?: PlotBbMarkerStatesSelectOptions;
}
/**
 * (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 PlotBbMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotBbAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotBbAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotBbConnectorsOptions;
    /**
     * (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 name for 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?: PlotBbDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotBbEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotBbLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotBbLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotBbLastVisiblePriceOptions;
    /**
     * (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?: PlotBbMarkerOptions;
    /**
     * (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.
     */
    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?: PlotBbPointOptions;
    /**
     * (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?: PlotBbStatesOptions;
    /**
     * (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.
     */
    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?: PlotBbTooltipOptions;
    /**
     * (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.
     */
    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<PlotBbZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotBbPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotBbPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotBbPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotBbStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotBbStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotBbStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotBbStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotBbStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotBbStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotBbStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotBbStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotBbStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotBbStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotBbStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotBbStatesInactiveOptions;
    /**
     * (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?: PlotBbStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotBbStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotBbStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotBbStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotBbStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotBbStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotBbStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotBbTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotBbTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotBbTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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;
}
/**
 * (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, 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 PlotBbZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotBellcurveAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotBellcurveAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotBellcurveAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotBellcurveConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotBellcurveConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotBellcurveConnectorsOptions {
    /**
     * (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?: PlotBellcurveConnectorsEndMarkerOptions;
    /**
     * (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?: PlotBellcurveConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotBellcurveConnectorsStartMarkerOptions;
    /**
     * (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 PlotBellcurveConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotBellcurveDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotBellcurveEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotBellcurveLabelOptions {
    /**
     * (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) 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 PlotBellcurveLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotBellcurveLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotBellcurveLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotBellcurveLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotBellcurveMarkerOptions {
    /**
     * (Highcharts) 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) 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) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highcharts) States for a single point marker.
     */
    states?: PlotBellcurveMarkerStatesOptions;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts) The hover state for a single point marker.
 */
export interface PlotBellcurveMarkerStatesHoverOptions {
    /**
     * (Highcharts) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (Highcharts) 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) 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) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (Highcharts) 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) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotBellcurveMarkerStatesInactiveOptions {
    /**
     * (Highcharts) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highcharts) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotBellcurveMarkerStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts) States for a single point marker.
 */
export interface PlotBellcurveMarkerStatesOptions {
    /**
     * (Highcharts) The hover state for a single point marker.
     */
    hover?: PlotBellcurveMarkerStatesHoverOptions;
    inactive?: PlotBellcurveMarkerStatesInactiveOptions;
    /**
     * (Highcharts) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotBellcurveMarkerStatesNormalOptions;
    /**
     * (Highcharts) 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?: PlotBellcurveMarkerStatesSelectOptions;
}
/**
 * (Highcharts) 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 PlotBellcurveMarkerStatesSelectOptions {
    /**
     * (Highcharts) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highcharts) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotBellcurveAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotBellcurveAnimationOptions);
    /**
     * (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;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotBellcurveConnectorsOptions;
    /**
     * (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 name for 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?: PlotBellcurveDataGroupingOptions;
    /**
     * (Highcharts) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotBellcurveEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotBellcurveLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotBellcurveLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotBellcurveLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotBellcurveMarkerOptions;
    /**
     * (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.
     */
    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?: PlotBellcurvePointOptions;
    /**
     * (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?: PlotBellcurveStatesOptions;
    /**
     * (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.
     */
    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
     * corresponing Y axis extreme is filled (since v6.1.0).
     */
    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?: PlotBellcurveTooltipOptions;
    /**
     * (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.
     */
    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<PlotBellcurveZonesOptions>;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotBellcurvePointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotBellcurvePointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotBellcurvePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotBellcurveStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotBellcurveStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface PlotBellcurveStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotBellcurveStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts) 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?: (PlotBellcurveStatesHoverHaloOptions|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;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotBellcurveStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotBellcurveStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotBellcurveStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotBellcurveStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotBellcurveStatesOptions {
    /**
     * (Highcharts) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotBellcurveStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotBellcurveStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotBellcurveStatesNormalOptions;
    /**
     * (Highcharts) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotBellcurveStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotBellcurveStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotBellcurveStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotBellcurveStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotBellcurveStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotBellcurveStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotBellcurveTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotBellcurveTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotBellcurveTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) 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 PlotBellcurveZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotBoxplotAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotBoxplotAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotBoxplotAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotBoxplotConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotBoxplotConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotBoxplotConnectorsOptions {
    /**
     * (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?: PlotBoxplotConnectorsEndMarkerOptions;
    /**
     * (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?: PlotBoxplotConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotBoxplotConnectorsStartMarkerOptions;
    /**
     * (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 PlotBoxplotConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotBoxplotDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) Options for the drag handles.
 */
export interface PlotBoxplotDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface PlotBoxplotDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotBoxplotDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotBoxplotDragDropOptions {
    /**
     * (Highcharts) Allow high value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableHigh?: boolean;
    /**
     * (Highcharts) Allow low value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableLow?: boolean;
    /**
     * (Highcharts) Allow Q1 value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableQ1?: boolean;
    /**
     * (Highcharts) Allow Q3 value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableQ3?: boolean;
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: PlotBoxplotDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotBoxplotDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotBoxplotEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotBoxplotLabelOptions {
    /**
     * (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) 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 PlotBoxplotLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotBoxplotLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotBoxplotLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotBoxplotLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotBoxplotAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotBoxplotAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    boostThreshold?: 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, 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 (see online
     * documentation for example) 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?: PlotBoxplotConnectorsOptions;
    /**
     * (Highcharts, Highstock, Gantt) When true, each 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);
    /**
     * (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?: PlotBoxplotDataGroupingOptions;
    /**
     * (Highcharts) 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?: any;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotBoxplotDragDropOptions;
    /**
     * (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?: PlotBoxplotEventsOptions;
    /**
     * (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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotBoxplotLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotBoxplotLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotBoxplotLastVisiblePriceOptions;
    /**
     * (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.
     */
    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 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;
    /**
     * (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.
     */
    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?: PlotBoxplotPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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. A special stacking option is with the
     * streamgraph series type, where 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.
     */
    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?: any;
    /**
     * (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?: PlotBoxplotTooltipOptions;
    /**
     * (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.
     */
    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 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<PlotBoxplotZonesOptions>;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotBoxplotPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotBoxplotPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotBoxplotPointEventsOptions;
}
/**
 * (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.
 */
export interface PlotBoxplotTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotBoxplotTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotBoxplotTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) 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 PlotBoxplotZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotBubbleAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotBubbleAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotBubbleAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotBubbleConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotBubbleConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotBubbleConnectorsOptions {
    /**
     * (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?: PlotBubbleConnectorsEndMarkerOptions;
    /**
     * (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?: PlotBubbleConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotBubbleConnectorsStartMarkerOptions;
    /**
     * (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 PlotBubbleConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotBubbleDataGroupingOptions {
    /**
     * (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?: (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) Options for the drag handles.
 */
export interface PlotBubbleDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotBubbleDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotBubbleDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotBubbleDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotBubbleDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotBubbleDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotBubbleEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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, 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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotBubbleLabelOptions {
    /**
     * (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) 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 PlotBubbleLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotBubbleLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotBubbleLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotBubbleLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotBubbleMarkerOptions {
    /**
     * (Highcharts, Highstock) The fill color of the point marker. When
     * `undefined`, the series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) The fill opacity of the bubble markers.
     */
    fillOpacity?: number;
    /**
     * (Highcharts, Highstock) The color of the point marker's outline. When
     * `undefined`, the series' or point's color is used.
     */
    lineColor?: any;
    /**
     * (Highcharts, Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) States for a single point marker.
     */
    states?: PlotBubbleMarkerStatesOptions;
    /**
     * (Highcharts, Highstock) A predefined shape or symbol for the marker.
     * Possible values are "circle", "square", "diamond", "triangle" and
     * "triangle-down".
     *
     * Additionally, the URL to a graphic can be given on the 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) The hover state for a single point marker.
 */
export interface PlotBubbleMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface PlotBubbleMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 PlotBubbleMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface PlotBubbleMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: PlotBubbleMarkerStatesHoverOptions;
    inactive?: PlotBubbleMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: PlotBubbleMarkerStatesNormalOptions;
    /**
     * (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?: PlotBubbleMarkerStatesSelectOptions;
}
/**
 * (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 PlotBubbleMarkerStatesSelectOptions {
    /**
     * (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, 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, 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. Requires `highcharts-more.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 `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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotBubbleAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotBubbleAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotBubbleConnectorsOptions;
    /**
     * (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 name for 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?: PlotBubbleDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotBubbleDragDropOptions;
    /**
     * (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?: PlotBubbleEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotBubbleLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotBubbleLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotBubbleLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotBubbleMarkerOptions;
    /**
     * (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?: PlotBubblePointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotBubbleStatesOptions;
    /**
     * (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?: PlotBubbleTooltipOptions;
    /**
     * (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.
     */
    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<PlotBubbleZonesOptions>;
    /**
     * (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) Events for each single point.
 */
export interface PlotBubblePointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotBubblePointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotBubblePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotBubbleStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotBubbleStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Options for the hovered series. These settings
 * override the normal state options when a series is moused over or touched.
 */
export interface PlotBubbleStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotBubbleStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts, 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?: PlotBubbleStatesHoverHaloOptions;
    /**
     * (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) The animation for entering the inactive state.
 */
export interface PlotBubbleStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotBubbleStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotBubbleStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotBubbleStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotBubbleStatesOptions {
    /**
     * (Highcharts, Highstock) Options for the hovered series. These settings
     * override the normal state options when a series is moused over or
     * touched.
     */
    hover?: PlotBubbleStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotBubbleStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotBubbleStatesNormalOptions;
    /**
     * (Highcharts, Highstock) Specific options for point in selected states,
     * after being selected by allowPointSelect or programmatically.
     */
    select?: PlotBubbleStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotBubbleStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotBubbleStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Specific options for point in selected states, after
 * being selected by allowPointSelect or programmatically.
 */
export interface PlotBubbleStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotBubbleStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, 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?: (PlotBubbleStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotBubbleTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotBubbleTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotBubbleTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotBubbleZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotBulletAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotBulletAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotBulletAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotBulletConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotBulletConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotBulletConnectorsOptions {
    /**
     * (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?: PlotBulletConnectorsEndMarkerOptions;
    /**
     * (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?: PlotBulletConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotBulletConnectorsStartMarkerOptions;
    /**
     * (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 PlotBulletConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotBulletDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) Options for the drag handles.
 */
export interface PlotBulletDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface PlotBulletDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: PlotBulletDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotBulletDragDropOptions {
    /**
     * (Highcharts) Allow target value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableTarget?: boolean;
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: PlotBulletDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotBulletDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotBulletEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotBulletLabelOptions {
    /**
     * (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) 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 PlotBulletLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotBulletLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotBulletLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotBulletLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotBulletAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotBulletAnimationOptions);
    /**
     * (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, 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) 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 (see online
     * documentation for example) 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?: PlotBulletConnectorsOptions;
    /**
     * (Highcharts, Highstock, Gantt) When true, each 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);
    /**
     * (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?: PlotBulletDataGroupingOptions;
    /**
     * (Highcharts) 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?: any;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotBulletDragDropOptions;
    /**
     * (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?: PlotBulletEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    groupZPadding?: number;
    /**
     * (Highcharts) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotBulletLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotBulletLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotBulletLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotBulletPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotBulletStatesOptions;
    /**
     * (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.
     */
    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;
    /**
     * (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?: PlotBulletTooltipOptions;
    /**
     * (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.
     */
    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<PlotBulletZonesOptions>;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotBulletPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotBulletPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotBulletPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotBulletStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotBulletStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotBulletStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotBulletStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotBulletStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotBulletStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotBulletStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotBulletStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotBulletStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotBulletStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotBulletStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotBulletStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotBulletStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotBulletStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotBulletStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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);
}
/**
 * (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.
 */
export interface PlotBulletTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotBulletTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotBulletTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) 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 PlotBulletZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotCandlestickAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotCandlestickAccessibilityOptions {
    /**
     * (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?: (object|PlotCandlestickAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotCandlestickConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotCandlestickConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotCandlestickConnectorsOptions {
    /**
     * (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?: PlotCandlestickConnectorsEndMarkerOptions;
    /**
     * (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?: PlotCandlestickConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotCandlestickConnectorsStartMarkerOptions;
    /**
     * (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 PlotCandlestickConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotCandlestickDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `5`.
     */
    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)]>;
}
/**
 * (Highstock) Options for the drag handles.
 */
export interface PlotCandlestickDragDropDragHandleOptions {
    /**
     * (Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highstock) Style options for the guide box default state.
 */
export interface PlotCandlestickDragDropGuideBoxDefaultOptions {
    /**
     * (Highstock) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotCandlestickDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotCandlestickDragDropOptions {
    /**
     * (Highstock) Allow close value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableClose?: boolean;
    /**
     * (Highstock) Allow high value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableHigh?: boolean;
    /**
     * (Highstock) Allow low value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableLow?: boolean;
    /**
     * (Highstock) Allow open value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableOpen?: boolean;
    /**
     * (Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highstock) Enable dragging in the Y dimension. Note that this is not
     * supported for TreeGrid axes (the default axis type in Gantt charts).
     */
    draggableY?: boolean;
    /**
     * (Highstock) Options for the drag handles.
     */
    dragHandle?: PlotCandlestickDragDropDragHandleOptions;
    /**
     * (Highstock) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highstock) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highstock) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highstock) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) Group the points by a property. Points with the same property
     * value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highstock) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotCandlestickDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highstock) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotCandlestickEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotCandlestickLabelOptions {
    /**
     * (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) 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 PlotCandlestickLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotCandlestickLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotCandlestickLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotCandlestickLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotCandlestickAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotCandlestickAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    boostThreshold?: 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);
    /**
     * (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 (see online
     * documentation for example) 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?: PlotCandlestickConnectorsOptions;
    /**
     * (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) 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?: PlotCandlestickDataGroupingOptions;
    /**
     * (Highstock) 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?: any;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotCandlestickDragDropOptions;
    /**
     * (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?: PlotCandlestickEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    groupZPadding?: number;
    /**
     * (Highstock) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotCandlestickLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotCandlestickLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotCandlestickLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotCandlestickPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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?: PlotCandlestickStatesOptions;
    /**
     * (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.
     */
    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?: PlotCandlestickTooltipOptions;
    /**
     * (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.
     */
    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<PlotCandlestickZonesOptions>;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotCandlestickPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotCandlestickPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotCandlestickPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotCandlestickStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highstock) Options for the hovered point. These settings override the normal
 * state options when a point is moused over or touched.
 */
export interface PlotCandlestickStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotCandlestickStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    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 pixel width of the line/border around the candlestick.
     */
    lineWidth?: number;
}
/**
 * (Highstock) The animation for entering the inactive state.
 */
export interface PlotCandlestickStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotCandlestickStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotCandlestickStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotCandlestickStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotCandlestickStatesOptions {
    /**
     * (Highstock) Options for the hovered point. These settings override the
     * normal state options when a point is moused over or touched.
     */
    hover?: PlotCandlestickStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotCandlestickStatesInactiveOptions;
    /**
     * (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?: PlotCandlestickStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotCandlestickStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotCandlestickStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotCandlestickStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotCandlestickStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotCandlestickTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotCandlestickTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotCandlestickTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (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) 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 PlotCandlestickZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotCciAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotCciAccessibilityOptions {
    /**
     * (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?: (object|PlotCciAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotCciConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotCciConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotCciConnectorsOptions {
    /**
     * (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?: PlotCciConnectorsEndMarkerOptions;
    /**
     * (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?: PlotCciConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotCciConnectorsStartMarkerOptions;
    /**
     * (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 PlotCciConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotCciDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotCciEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotCciLabelOptions {
    /**
     * (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) 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 PlotCciLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotCciLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotCciLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotCciLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotCciMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotCciMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotCciMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotCciMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotCciMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotCciMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotCciMarkerStatesHoverOptions;
    inactive?: PlotCciMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotCciMarkerStatesNormalOptions;
    /**
     * (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?: PlotCciMarkerStatesSelectOptions;
}
/**
 * (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 PlotCciMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotCciAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotCciAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotCciConnectorsOptions;
    /**
     * (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 name for 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?: PlotCciDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotCciEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotCciLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotCciLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotCciLastVisiblePriceOptions;
    /**
     * (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?: PlotCciMarkerOptions;
    /**
     * (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.
     */
    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?: PlotCciPointOptions;
    /**
     * (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?: PlotCciStatesOptions;
    /**
     * (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.
     */
    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?: PlotCciTooltipOptions;
    /**
     * (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.
     */
    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<PlotCciZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotCciPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotCciPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotCciPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotCciStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotCciStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotCciStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotCciStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotCciStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotCciStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotCciStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotCciStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotCciStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotCciStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotCciStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotCciStatesInactiveOptions;
    /**
     * (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?: PlotCciStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotCciStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotCciStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotCciStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotCciStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotCciStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotCciStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotCciTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotCciTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotCciTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotCciZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotChaikinAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotChaikinAccessibilityOptions {
    /**
     * (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?: (object|PlotChaikinAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotChaikinConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotChaikinConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotChaikinConnectorsOptions {
    /**
     * (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?: PlotChaikinConnectorsEndMarkerOptions;
    /**
     * (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?: PlotChaikinConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotChaikinConnectorsStartMarkerOptions;
    /**
     * (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 PlotChaikinConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotChaikinDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotChaikinEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotChaikinLabelOptions {
    /**
     * (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) 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 PlotChaikinLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotChaikinLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotChaikinLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotChaikinLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotChaikinMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotChaikinMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotChaikinMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotChaikinMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotChaikinMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotChaikinMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotChaikinMarkerStatesHoverOptions;
    inactive?: PlotChaikinMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotChaikinMarkerStatesNormalOptions;
    /**
     * (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?: PlotChaikinMarkerStatesSelectOptions;
}
/**
 * (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 PlotChaikinMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotChaikinAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotChaikinAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotChaikinConnectorsOptions;
    /**
     * (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 name for 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?: PlotChaikinDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotChaikinEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotChaikinLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotChaikinLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotChaikinLastVisiblePriceOptions;
    /**
     * (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?: PlotChaikinMarkerOptions;
    /**
     * (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.
     */
    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?: PlotChaikinPointOptions;
    /**
     * (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?: PlotChaikinStatesOptions;
    /**
     * (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.
     */
    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?: PlotChaikinTooltipOptions;
    /**
     * (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.
     */
    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<PlotChaikinZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotChaikinPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotChaikinPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotChaikinPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotChaikinStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotChaikinStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotChaikinStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotChaikinStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotChaikinStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotChaikinStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotChaikinStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotChaikinStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotChaikinStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotChaikinStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotChaikinStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotChaikinStatesInactiveOptions;
    /**
     * (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?: PlotChaikinStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotChaikinStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotChaikinStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotChaikinStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotChaikinStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotChaikinStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotChaikinStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotChaikinTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotChaikinTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotChaikinTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotChaikinZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotCmfAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotCmfAccessibilityOptions {
    /**
     * (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?: (object|PlotCmfAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotCmfConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotCmfConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotCmfConnectorsOptions {
    /**
     * (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?: PlotCmfConnectorsEndMarkerOptions;
    /**
     * (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?: PlotCmfConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotCmfConnectorsStartMarkerOptions;
    /**
     * (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 PlotCmfConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotCmfDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotCmfEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotCmfLabelOptions {
    /**
     * (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) 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 PlotCmfLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotCmfLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotCmfLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotCmfLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotCmfMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotCmfMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotCmfMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotCmfMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotCmfMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotCmfMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotCmfMarkerStatesHoverOptions;
    inactive?: PlotCmfMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotCmfMarkerStatesNormalOptions;
    /**
     * (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?: PlotCmfMarkerStatesSelectOptions;
}
/**
 * (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 PlotCmfMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotCmfAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotCmfAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotCmfConnectorsOptions;
    /**
     * (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 name for 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?: PlotCmfDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotCmfEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotCmfLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotCmfLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotCmfLastVisiblePriceOptions;
    /**
     * (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?: PlotCmfMarkerOptions;
    /**
     * (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.
     */
    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?: PlotCmfPointOptions;
    /**
     * (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?: PlotCmfStatesOptions;
    /**
     * (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.
     */
    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?: PlotCmfTooltipOptions;
    /**
     * (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.
     */
    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<PlotCmfZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotCmfPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotCmfPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotCmfPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotCmfStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotCmfStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotCmfStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotCmfStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotCmfStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotCmfStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotCmfStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotCmfStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotCmfStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotCmfStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotCmfStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotCmfStatesInactiveOptions;
    /**
     * (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?: PlotCmfStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotCmfStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotCmfStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotCmfStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotCmfStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotCmfStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotCmfStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotCmfTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotCmfTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotCmfTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotCmfZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotColumnAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotColumnAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotColumnAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotColumnConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotColumnConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotColumnConnectorsOptions {
    /**
     * (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?: PlotColumnConnectorsEndMarkerOptions;
    /**
     * (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?: PlotColumnConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotColumnConnectorsStartMarkerOptions;
    /**
     * (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 PlotColumnConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotColumnDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) Options for the drag handles.
 */
export interface PlotColumnDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotColumnDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotColumnDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotColumnDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotColumnDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotColumnDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotColumnEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotColumnLabelOptions {
    /**
     * (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) 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 PlotColumnLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotColumnLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotColumnLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotColumnLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotColumnAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotColumnAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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) 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 (see online
     * documentation for example) 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?: PlotColumnConnectorsOptions;
    /**
     * (Highcharts, Highstock, Gantt) When true, each 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);
    /**
     * (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?: PlotColumnDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: any;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotColumnDragDropOptions;
    /**
     * (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?: PlotColumnEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    groupZPadding?: number;
    /**
     * (Highcharts, Highstock) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotColumnLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotColumnLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotColumnLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotColumnPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotColumnStatesOptions;
    /**
     * (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.
     */
    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;
    /**
     * (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?: PlotColumnTooltipOptions;
    /**
     * (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.
     */
    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<PlotColumnZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotColumnPointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotColumnPointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotColumnPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotColumnpyramidAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotColumnpyramidAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotColumnpyramidAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotColumnpyramidConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotColumnpyramidConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotColumnpyramidConnectorsOptions {
    /**
     * (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?: PlotColumnpyramidConnectorsEndMarkerOptions;
    /**
     * (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?: PlotColumnpyramidConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotColumnpyramidConnectorsStartMarkerOptions;
    /**
     * (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 PlotColumnpyramidConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotColumnpyramidDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) Options for the drag handles.
 */
export interface PlotColumnpyramidDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotColumnpyramidDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotColumnpyramidDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotColumnpyramidDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotColumnpyramidDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotColumnpyramidDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotColumnpyramidEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotColumnpyramidLabelOptions {
    /**
     * (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) 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 PlotColumnpyramidLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotColumnpyramidLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotColumnpyramidLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotColumnpyramidLastVisiblePriceLabelOptions;
}
/**
 * (Highcharts, Highstock) Column pyramid series display one pyramid per value
 * along an X axis. Requires `highcharts-more.js`. 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotColumnpyramidAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotColumnpyramidAnimationOptions);
    /**
     * (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, 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) 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 (see online
     * documentation for example) 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?: PlotColumnpyramidConnectorsOptions;
    /**
     * (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);
    /**
     * (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?: PlotColumnpyramidDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: any;
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotColumnpyramidDragDropOptions;
    /**
     * (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?: PlotColumnpyramidEventsOptions;
    /**
     * (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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotColumnpyramidLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotColumnpyramidLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotColumnpyramidLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotColumnpyramidPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotColumnpyramidStatesOptions;
    /**
     * (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.
     */
    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?: PlotColumnpyramidTooltipOptions;
    /**
     * (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.
     */
    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) Events for each single point.
 */
export interface PlotColumnpyramidPointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotColumnpyramidPointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotColumnpyramidPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotColumnpyramidStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotColumnpyramidStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotColumnpyramidStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotColumnpyramidStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotColumnpyramidStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotColumnpyramidStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotColumnpyramidStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotColumnpyramidStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotColumnpyramidStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotColumnpyramidStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotColumnpyramidStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotColumnpyramidStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotColumnpyramidStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotColumnpyramidStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotColumnpyramidStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotColumnpyramidTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotColumnpyramidTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotColumnpyramidTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) Keyboard navigation for a series
 */
export interface PlotColumnrangeAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotColumnrangeAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotColumnrangeAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotColumnrangeConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotColumnrangeConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotColumnrangeConnectorsOptions {
    /**
     * (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?: PlotColumnrangeConnectorsEndMarkerOptions;
    /**
     * (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?: PlotColumnrangeConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotColumnrangeConnectorsStartMarkerOptions;
    /**
     * (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 PlotColumnrangeConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotColumnrangeDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) Options for the drag handles.
 */
export interface PlotColumnrangeDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotColumnrangeDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotColumnrangeDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotColumnrangeDragDropOptions {
    /**
     * (Highcharts, Highstock) Allow high value to be dragged individually.
     * Requires `draggable-points` module.
     */
    draggableHigh?: boolean;
    /**
     * (Highcharts, Highstock) Allow low value to be dragged individually.
     * Requires `draggable-points` module.
     */
    draggableLow?: boolean;
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotColumnrangeDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotColumnrangeDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotColumnrangeEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotColumnrangeLabelOptions {
    /**
     * (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) 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 PlotColumnrangeLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotColumnrangeLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotColumnrangeLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotColumnrangeLastVisiblePriceLabelOptions;
}
/**
 * (Highcharts, Highstock) The column range is a cartesian series type with
 * higher and lower Y values along an X axis. Requires `highcharts-more.js`. 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotColumnrangeAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotColumnrangeAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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) 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 (see online
     * documentation for example) 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?: PlotColumnrangeConnectorsOptions;
    /**
     * (Highcharts, Highstock, Gantt) When true, each 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);
    /**
     * (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?: PlotColumnrangeDataGroupingOptions;
    /**
     * (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) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotColumnrangeDragDropOptions;
    /**
     * (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?: PlotColumnrangeEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    groupZPadding?: number;
    /**
     * (Highcharts, Highstock) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotColumnrangeLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotColumnrangeLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotColumnrangeLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotColumnrangePointOptions;
    /**
     * (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.
     */
    pointRange?: any;
    /**
     * (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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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?: PlotColumnrangeStatesOptions;
    /**
     * (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.
     */
    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?: PlotColumnrangeTooltipOptions;
    /**
     * (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.
     */
    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<PlotColumnrangeZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotColumnrangePointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotColumnrangePointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotColumnrangePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotColumnrangeStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotColumnrangeStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotColumnrangeStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotColumnrangeStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotColumnrangeStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotColumnrangeStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotColumnrangeStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotColumnrangeStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotColumnrangeStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotColumnrangeStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotColumnrangeStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotColumnrangeStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotColumnrangeStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotColumnrangeStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotColumnrangeStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotColumnrangeTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotColumnrangeTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotColumnrangeTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotColumnrangeZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotColumnStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotColumnStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotColumnStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotColumnStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotColumnStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotColumnStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotColumnStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotColumnStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotColumnStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotColumnStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotColumnStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotColumnStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotColumnStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotColumnStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotColumnStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotColumnTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotColumnTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotColumnTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotColumnZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotCylinderAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotCylinderAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotCylinderAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotCylinderConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotCylinderConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotCylinderConnectorsOptions {
    /**
     * (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?: PlotCylinderConnectorsEndMarkerOptions;
    /**
     * (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?: PlotCylinderConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotCylinderConnectorsStartMarkerOptions;
    /**
     * (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 PlotCylinderConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotCylinderDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) 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 PlotCylinderEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotCylinderLabelOptions {
    /**
     * (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) 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 PlotCylinderLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotCylinderLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotCylinderLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotCylinderLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotCylinderAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotCylinderAnimationOptions);
    /**
     * (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, 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) 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 (see online
     * documentation for example) 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?: PlotCylinderConnectorsOptions;
    /**
     * (Highcharts, Highstock, Gantt) When true, each 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);
    /**
     * (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?: PlotCylinderDataGroupingOptions;
    /**
     * (Highcharts) 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?: any;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotCylinderEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    groupZPadding?: number;
    /**
     * (Highcharts) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotCylinderLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotCylinderLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotCylinderLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotCylinderPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotCylinderStatesOptions;
    /**
     * (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.
     */
    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;
    /**
     * (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?: PlotCylinderTooltipOptions;
    /**
     * (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.
     */
    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<PlotCylinderZonesOptions>;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotCylinderPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotCylinderPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotCylinderPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotCylinderStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotCylinderStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotCylinderStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotCylinderStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotCylinderStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotCylinderStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotCylinderStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotCylinderStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotCylinderStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotCylinderStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotCylinderStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotCylinderStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotCylinderStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotCylinderStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotCylinderStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotCylinderTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotCylinderTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotCylinderTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) 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 PlotCylinderZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotDemaAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotDemaAccessibilityOptions {
    /**
     * (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?: (object|PlotDemaAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotDemaConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotDemaConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotDemaConnectorsOptions {
    /**
     * (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?: PlotDemaConnectorsEndMarkerOptions;
    /**
     * (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?: PlotDemaConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotDemaConnectorsStartMarkerOptions;
    /**
     * (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 PlotDemaConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotDemaDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotDemaEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotDemaLabelOptions {
    /**
     * (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) 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 PlotDemaLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotDemaLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotDemaLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotDemaLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotDemaMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotDemaMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotDemaMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotDemaMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotDemaMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotDemaMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotDemaMarkerStatesHoverOptions;
    inactive?: PlotDemaMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotDemaMarkerStatesNormalOptions;
    /**
     * (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?: PlotDemaMarkerStatesSelectOptions;
}
/**
 * (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 PlotDemaMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotDemaAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotDemaAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotDemaConnectorsOptions;
    /**
     * (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 name for 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?: PlotDemaDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotDemaEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotDemaLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotDemaLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotDemaLastVisiblePriceOptions;
    /**
     * (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?: PlotDemaMarkerOptions;
    /**
     * (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.
     */
    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?: PlotDemaPointOptions;
    /**
     * (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?: PlotDemaStatesOptions;
    /**
     * (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.
     */
    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?: PlotDemaTooltipOptions;
    /**
     * (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.
     */
    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<PlotDemaZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotDemaPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotDemaPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotDemaPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotDemaStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotDemaStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotDemaStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotDemaStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotDemaStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotDemaStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotDemaStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotDemaStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotDemaStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotDemaStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotDemaStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotDemaStatesInactiveOptions;
    /**
     * (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?: PlotDemaStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotDemaStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotDemaStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotDemaStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotDemaStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotDemaStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotDemaStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotDemaTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotDemaTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotDemaTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotDemaZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotDependencywheelAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotDependencywheelAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotDependencywheelAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotDependencywheelConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotDependencywheelConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotDependencywheelConnectorsOptions {
    /**
     * (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?: PlotDependencywheelConnectorsEndMarkerOptions;
    /**
     * (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?: PlotDependencywheelConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotDependencywheelConnectorsStartMarkerOptions;
    /**
     * (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 PlotDependencywheelConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotDependencywheelDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) 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 PlotDependencywheelEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotDependencywheelLabelOptions {
    /**
     * (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) 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 PlotDependencywheelLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotDependencywheelLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotDependencywheelLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotDependencywheelLastVisiblePriceLabelOptions;
}
/**
 * (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) Can set `dataLabels` on all points which lay on the same
     * level.
     */
    dataLabels?: 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?: PointStatesOptionsObject;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotDependencywheelAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotDependencywheelAnimationOptions);
    /**
     * (Highcharts) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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) 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 (see online
     * documentation for example) 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?: PlotDependencywheelConnectorsOptions;
    /**
     * (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;
    /**
     * (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?: PlotDependencywheelDataGroupingOptions;
    /**
     * (Highcharts) 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) Requires the Accessibility module.
     *
     * 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?: PlotDependencywheelEventsOptions;
    /**
     * (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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotDependencywheelLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotDependencywheelLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotDependencywheelLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotDependencywheelPointOptions;
    /**
     * (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?: PlotDependencywheelStatesOptions;
    /**
     * (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.
     */
    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?: PlotDependencywheelTooltipOptions;
    /**
     * (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.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotDependencywheelPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotDependencywheelPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotDependencywheelPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotDependencywheelStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotDependencywheelStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotDependencywheelStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Opacity for the links between nodes in the
     * sankey diagram in hover mode.
     */
    linkOpacity?: number;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotDependencywheelStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for a single point node/link.
 */
export interface PlotDependencywheelStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: PlotDependencywheelStatesInactiveAnimationOptions;
    /**
     * (Highcharts) Opacity for the links between nodes in the sankey diagram in
     * inactive mode.
     */
    linkOpacity?: number;
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotDependencywheelStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotDependencywheelStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotDependencywheelStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for a single point node/link.
     */
    inactive?: PlotDependencywheelStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotDependencywheelStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotDependencywheelStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotDependencywheelStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotDependencywheelStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotDependencywheelStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotDependencywheelTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotDependencywheelTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotDependencywheelTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts) Whether the tooltip should follow the pointer or stay fixed
     * on the item.
     */
    followPointer?: boolean;
    /**
     * (Highcharts) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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>;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotDpoAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotDpoAccessibilityOptions {
    /**
     * (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?: (object|PlotDpoAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotDpoConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotDpoConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotDpoConnectorsOptions {
    /**
     * (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?: PlotDpoConnectorsEndMarkerOptions;
    /**
     * (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?: PlotDpoConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotDpoConnectorsStartMarkerOptions;
    /**
     * (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 PlotDpoConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotDpoDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotDpoEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotDpoLabelOptions {
    /**
     * (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) 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 PlotDpoLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotDpoLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotDpoLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotDpoLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotDpoMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotDpoMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotDpoMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotDpoMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotDpoMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotDpoMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotDpoMarkerStatesHoverOptions;
    inactive?: PlotDpoMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotDpoMarkerStatesNormalOptions;
    /**
     * (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?: PlotDpoMarkerStatesSelectOptions;
}
/**
 * (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 PlotDpoMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotDpoAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotDpoAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotDpoConnectorsOptions;
    /**
     * (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 name for 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?: PlotDpoDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotDpoEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotDpoLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotDpoLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotDpoLastVisiblePriceOptions;
    /**
     * (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?: PlotDpoMarkerOptions;
    /**
     * (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.
     */
    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?: PlotDpoPointOptions;
    /**
     * (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?: PlotDpoStatesOptions;
    /**
     * (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.
     */
    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?: PlotDpoTooltipOptions;
    /**
     * (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.
     */
    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<PlotDpoZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotDpoPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotDpoPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotDpoPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotDpoStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotDpoStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotDpoStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotDpoStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotDpoStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotDpoStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotDpoStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotDpoStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotDpoStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotDpoStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotDpoStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotDpoStatesInactiveOptions;
    /**
     * (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?: PlotDpoStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotDpoStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotDpoStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotDpoStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotDpoStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotDpoStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotDpoStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotDpoTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotDpoTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotDpoTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotDpoZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotEmaAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotEmaAccessibilityOptions {
    /**
     * (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?: (object|PlotEmaAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotEmaConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotEmaConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotEmaConnectorsOptions {
    /**
     * (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?: PlotEmaConnectorsEndMarkerOptions;
    /**
     * (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?: PlotEmaConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotEmaConnectorsStartMarkerOptions;
    /**
     * (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 PlotEmaConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotEmaDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotEmaEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotEmaLabelOptions {
    /**
     * (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) 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 PlotEmaLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotEmaLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotEmaLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotEmaLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotEmaMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotEmaMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotEmaMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotEmaMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotEmaMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotEmaMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotEmaMarkerStatesHoverOptions;
    inactive?: PlotEmaMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotEmaMarkerStatesNormalOptions;
    /**
     * (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?: PlotEmaMarkerStatesSelectOptions;
}
/**
 * (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 PlotEmaMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotEmaAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotEmaAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotEmaConnectorsOptions;
    /**
     * (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 name for 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?: PlotEmaDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotEmaEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotEmaLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotEmaLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotEmaLastVisiblePriceOptions;
    /**
     * (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?: PlotEmaMarkerOptions;
    /**
     * (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.
     */
    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?: PlotEmaPointOptions;
    /**
     * (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?: PlotEmaStatesOptions;
    /**
     * (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.
     */
    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?: PlotEmaTooltipOptions;
    /**
     * (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.
     */
    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<PlotEmaZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotEmaPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotEmaPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotEmaPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotEmaStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotEmaStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotEmaStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotEmaStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotEmaStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotEmaStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotEmaStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotEmaStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotEmaStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotEmaStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotEmaStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotEmaStatesInactiveOptions;
    /**
     * (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?: PlotEmaStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotEmaStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotEmaStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotEmaStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotEmaStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotEmaStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotEmaStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotEmaTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotEmaTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotEmaTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotEmaZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotErrorbarAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotErrorbarAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotErrorbarAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotErrorbarConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotErrorbarConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotErrorbarConnectorsOptions {
    /**
     * (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?: PlotErrorbarConnectorsEndMarkerOptions;
    /**
     * (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?: PlotErrorbarConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotErrorbarConnectorsStartMarkerOptions;
    /**
     * (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 PlotErrorbarConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotErrorbarDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) Options for the drag handles.
 */
export interface PlotErrorbarDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotErrorbarDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotErrorbarDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotErrorbarDragDropOptions {
    /**
     * (Highcharts, Highstock) Allow high value to be dragged individually.
     * Requires `draggable-points` module.
     */
    draggableHigh?: boolean;
    /**
     * (Highcharts, Highstock) Allow low value to be dragged individually.
     * Requires `draggable-points` module.
     */
    draggableLow?: boolean;
    /**
     * (Highcharts, Highstock) Allow Q1 value to be dragged individually.
     * Requires `draggable-points` module.
     */
    draggableQ1?: boolean;
    /**
     * (Highcharts, Highstock) Allow Q3 value to be dragged individually.
     * Requires `draggable-points` module.
     */
    draggableQ3?: boolean;
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotErrorbarDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotErrorbarDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotErrorbarEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotErrorbarLabelOptions {
    /**
     * (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) 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 PlotErrorbarLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotErrorbarLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotErrorbarLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotErrorbarLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotErrorbarAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotErrorbarAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    boostThreshold?: 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) 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 (see online
     * documentation for example) 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?: PlotErrorbarConnectorsOptions;
    /**
     * (Highcharts, Highstock, Gantt) When true, each 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);
    /**
     * (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?: PlotErrorbarDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: any;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotErrorbarDragDropOptions;
    /**
     * (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?: PlotErrorbarEventsOptions;
    /**
     * (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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotErrorbarLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotErrorbarLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotErrorbarLastVisiblePriceOptions;
    /**
     * (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 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;
    /**
     * (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.
     */
    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?: PlotErrorbarPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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. A special stacking option is with the
     * streamgraph series type, where 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.
     */
    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?: any;
    /**
     * (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?: PlotErrorbarTooltipOptions;
    /**
     * (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.
     */
    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 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<PlotErrorbarZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotErrorbarPointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotErrorbarPointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotErrorbarPointEventsOptions;
}
/**
 * (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.
 */
export interface PlotErrorbarTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotErrorbarTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotErrorbarTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotErrorbarZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotFlagsAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotFlagsAccessibilityOptions {
    /**
     * (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?: (object|PlotFlagsAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotFlagsConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotFlagsConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotFlagsConnectorsOptions {
    /**
     * (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?: PlotFlagsConnectorsEndMarkerOptions;
    /**
     * (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?: PlotFlagsConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotFlagsConnectorsStartMarkerOptions;
    /**
     * (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 PlotFlagsConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (Highstock) Options for the drag handles.
 */
export interface PlotFlagsDragDropDragHandleOptions {
    /**
     * (Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highstock) Style options for the guide box default state.
 */
export interface PlotFlagsDragDropGuideBoxDefaultOptions {
    /**
     * (Highstock) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotFlagsDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotFlagsDragDropOptions {
    /**
     * (Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highstock) Enable dragging in the Y dimension. Note that this is not
     * supported for TreeGrid axes (the default axis type in Gantt charts).
     */
    draggableY?: boolean;
    /**
     * (Highstock) Options for the drag handles.
     */
    dragHandle?: PlotFlagsDragDropDragHandleOptions;
    /**
     * (Highstock) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highstock) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highstock) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highstock) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) Group the points by a property. Points with the same property
     * value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highstock) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotFlagsDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highstock) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotFlagsEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotFlagsLabelOptions {
    /**
     * (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) 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 PlotFlagsLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotFlagsLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotFlagsLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotFlagsLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotFlagsAccessibilityOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    boostThreshold?: 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);
    /**
     * (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 (see online
     * documentation for example) 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?: PlotFlagsConnectorsOptions;
    /**
     * (Highcharts, Highstock, Gantt) When true, each 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) 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?: any;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotFlagsDragDropOptions;
    /**
     * (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?: PlotFlagsEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    groupZPadding?: number;
    /**
     * (Highstock) Fixed height of the flag's shape. By default, height is
     * autocalculated according to the flag's title.
     */
    height?: number;
    /**
     * (Highstock) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotFlagsLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotFlagsLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotFlagsLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotFlagsPointOptions;
    /**
     * (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.
     */
    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;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotFlagsStatesOptions;
    /**
     * (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.
     */
    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?: any;
    /**
     * (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?: PlotFlagsTooltipOptions;
    /**
     * (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<PlotFlagsZonesOptions>;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotFlagsPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotFlagsPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotFlagsPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotFlagsStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highstock) Options for the hovered point. These settings override the normal
 * state options when a point is moused over or touched.
 */
export interface PlotFlagsStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotFlagsStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    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);
    /**
     * (Highstock) The color of the line/border of the flag.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
}
/**
 * (Highstock) The animation for entering the inactive state.
 */
export interface PlotFlagsStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotFlagsStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotFlagsStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotFlagsStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotFlagsStatesOptions {
    /**
     * (Highstock) Options for the hovered point. These settings override the
     * normal state options when a point is moused over or touched.
     */
    hover?: PlotFlagsStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotFlagsStatesInactiveOptions;
    /**
     * (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?: PlotFlagsStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotFlagsStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotFlagsStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotFlagsStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotFlagsStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotFlagsTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: 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.
 */
export interface PlotFlagsTooltipOptions {
    /**
     * (Highstock) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotFlagsTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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, 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) 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 PlotFlagsZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotFunnel3dAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotFunnel3dAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotFunnel3dAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotFunnel3dConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotFunnel3dConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotFunnel3dConnectorsOptions {
    /**
     * (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?: PlotFunnel3dConnectorsEndMarkerOptions;
    /**
     * (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?: PlotFunnel3dConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotFunnel3dConnectorsStartMarkerOptions;
    /**
     * (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 PlotFunnel3dConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotFunnel3dDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) Options for the drag handles.
 */
export interface PlotFunnel3dDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface PlotFunnel3dDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: PlotFunnel3dDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotFunnel3dDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: PlotFunnel3dDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotFunnel3dDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotFunnel3dEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotFunnel3dLabelOptions {
    /**
     * (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) 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 PlotFunnel3dLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotFunnel3dLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotFunnel3dLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotFunnel3dLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotFunnel3dAccessibilityOptions);
    /**
     * (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:
     *
     * - `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) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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) 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 (see online
     * documentation for example) 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?: PlotFunnel3dConnectorsOptions;
    /**
     * (Highcharts, Highstock, Gantt) When true, each 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);
    /**
     * (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?: PlotFunnel3dDataGroupingOptions;
    /**
     * (Highcharts) 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?: string;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotFunnel3dDragDropOptions;
    /**
     * (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?: PlotFunnel3dEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotFunnel3dLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotFunnel3dLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotFunnel3dLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotFunnel3dPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotFunnel3dStatesOptions;
    /**
     * (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.
     */
    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;
    /**
     * (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?: PlotFunnel3dTooltipOptions;
    /**
     * (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.
     */
    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<PlotFunnel3dZonesOptions>;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotFunnel3dPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotFunnel3dPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotFunnel3dPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotFunnel3dStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotFunnel3dStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotFunnel3dStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotFunnel3dStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotFunnel3dStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotFunnel3dStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotFunnel3dStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotFunnel3dStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotFunnel3dStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotFunnel3dStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotFunnel3dStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotFunnel3dStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotFunnel3dStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotFunnel3dStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotFunnel3dStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotFunnel3dTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotFunnel3dTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotFunnel3dTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) 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 PlotFunnel3dZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotFunnelAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotFunnelAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotFunnelAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (Highcharts) Initial animation is by default disabled for the funnel chart.
 */
export interface PlotFunnelAnimationOptions {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotFunnelConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotFunnelConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotFunnelConnectorsOptions {
    /**
     * (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?: PlotFunnelConnectorsEndMarkerOptions;
    /**
     * (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?: PlotFunnelConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotFunnelConnectorsStartMarkerOptions;
    /**
     * (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 PlotFunnelConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotFunnelDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotFunnelEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) Fires when the checkbox next to the point 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (Highstock) The line marks the last price from all points.
 */
export interface PlotFunnelLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotFunnelLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotFunnelLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotFunnelLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotFunnelAccessibilityOptions);
    /**
     * (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) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotFunnelConnectorsOptions;
    /**
     * (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);
    /**
     * (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?: PlotFunnelDataGroupingOptions;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) The thickness of a 3D pie. Requires `highcharts-3d.js`
     */
    depth?: number;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotFunnelEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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?: PlotFunnelLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotFunnelLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotFunnelPointOptions;
    /**
     * (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?: PlotFunnelStatesOptions;
    /**
     * (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?: PlotFunnelTooltipOptions;
    /**
     * (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;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotFunnelPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    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) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotFunnelPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotFunnelPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotFunnelStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface PlotFunnelStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotFunnelStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts) How much to brighten the point on interaction. Requires the
     * main color to be defined in hex or rgb(a) format.
     *
     * In styled mode, the hover brightness is by default replaced by a
     * fill-opacity given in the `.highcharts-point-hover` class.
     */
    brightness?: number;
    /**
     * (Highmaps) The color of the shape in this state.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Enable separate styles for the hovered series to visualize
     * that the user hovers either the series itself or the legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotFunnelStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotFunnelStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotFunnelStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotFunnelStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts) Options for the series states.
 */
export interface PlotFunnelStatesOptions {
    /**
     * (Highcharts) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotFunnelStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotFunnelStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotFunnelStatesNormalOptions;
    /**
     * (Highcharts) Options for a selected funnel item.
     */
    select?: PlotFunnelStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotFunnelStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts) Options for a selected funnel item.
 */
export interface PlotFunnelStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotFunnelStatesSelectAnimationOptions;
    /**
     * (Highmaps) A specific border color for the selected point.
     */
    borderColor?: ColorString;
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highmaps) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Enable separate styles for the hovered series to visualize
     * that the user hovers either the series itself or the legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotFunnelTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotFunnelTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotFunnelTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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;
}
/**
 * (Gantt) Keyboard navigation for a series
 */
export interface PlotGanttAccessibilityKeyboardNavigationOptions {
    /**
     * (Gantt) Enable/disable keyboard navigation support for a specific series.
     */
    enabled?: boolean;
}
/**
 * (Gantt) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotGanttAccessibilityOptions {
    /**
     * (Gantt) Provide a description of the series, announced to screen readers.
     */
    description?: string;
    /**
     * (Gantt) Enable/disable accessibility functionality for a specific series.
     */
    enabled?: boolean;
    /**
     * (Gantt) Expose only the series element to screen readers, not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Gantt) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotGanttAccessibilityKeyboardNavigationOptions);
    /**
     * (Gantt) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
export interface PlotGanttConnectorsAnimationOptions {
    reversed?: boolean;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotGanttConnectorsEndMarkerOptions {
    /**
     * (Gantt) Horizontal alignment of the markers relative to the points.
     */
    align?: string;
    /**
     * (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 PlotGanttConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotGanttConnectorsOptions {
    animation?: PlotGanttConnectorsAnimationOptions;
    /**
     * (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?: PlotGanttConnectorsEndMarkerOptions;
    /**
     * (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?: PlotGanttConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotGanttConnectorsStartMarkerOptions;
    /**
     * (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;
}
/**
 * (Gantt) Marker options specific to the start markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotGanttConnectorsStartMarkerOptions {
    /**
     * (Gantt) Horizontal alignment of the markers relative to the points.
     */
    align?: string;
    /**
     * (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;
}
/**
 * (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.
 */
export interface PlotGanttDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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)]>;
}
/**
 * (Gantt) Options for the drag handles.
 */
export interface PlotGanttDragDropDragHandleOptions {
    /**
     * (Gantt) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Gantt) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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;
    /**
     * (Gantt) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Gantt) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (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;
    /**
     * (Gantt) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Gantt) Style options for the guide box default state.
 */
export interface PlotGanttDragDropGuideBoxDefaultOptions {
    /**
     * (Gantt) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Gantt) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Gantt) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Gantt) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Gantt) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Gantt) Guide box zIndex.
     */
    zIndex?: 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?: PlotGanttDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotGanttDragDropOptions {
    /**
     * (Gantt) Allow end value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableEnd?: boolean;
    /**
     * (Gantt) Allow start value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableStart?: boolean;
    /**
     * (Gantt) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Gantt) Allow x value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableX1?: boolean;
    /**
     * (Gantt) Allow x2 value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableX2?: boolean;
    /**
     * (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;
    /**
     * (Gantt) Options for the drag handles.
     */
    dragHandle?: PlotGanttDragDropDragHandleOptions;
    /**
     * (Gantt) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Gantt) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Gantt) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Gantt) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (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;
    /**
     * (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;
    /**
     * (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;
    /**
     * (Gantt) Group the points by a property. Points with the same property
     * value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Gantt) Style options for the guide box. The guide box has one state by
     * default, the `default` state.
     */
    guideBox?: (PlotGanttDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Gantt) Update points as they are dragged. If false, a guide box is drawn
     * to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotGanttEventsOptions {
    /**
     * (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;
    /**
     * (Gantt) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Gantt) 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;
    /**
     * (Gantt) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Gantt) 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;
    /**
     * (Gantt) 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;
    /**
     * (Gantt) Fires when the mouse enters the graph. One parameter, `event`, is
     * passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Gantt) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotGanttLabelOptions {
    /**
     * (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) 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 PlotGanttLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotGanttLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotGanttLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotGanttLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the accessibility
     * module.
     */
    accessibility?: (object|PlotGanttAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotGanttAnimationOptions);
    /**
     * (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;
    /**
     * (Gantt) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotGanttConnectorsOptions;
    /**
     * (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);
    /**
     * (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?: PlotGanttDataGroupingOptions;
    /**
     * (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?: any;
    /**
     * (Gantt) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotGanttDragDropOptions;
    /**
     * (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?: PlotGanttEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    groupZPadding?: number;
    /**
     * (Gantt) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotGanttLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotGanttLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotGanttLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotGanttPointOptions;
    /**
     * (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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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?: PlotGanttStatesOptions;
    /**
     * (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.
     */
    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?: PlotGanttTooltipOptions;
    /**
     * (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.
     */
    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<PlotGanttZonesOptions>;
}
/**
 * (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);
}
/**
 * (Gantt) Events for each single point.
 */
export interface PlotGanttPointEventsOptions {
    /**
     * (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;
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (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;
    /**
     * (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;
    /**
     * (Gantt) 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;
    /**
     * (Gantt) 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;
    /**
     * (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;
}
/**
 * (Gantt) Properties for each single point.
 */
export interface PlotGanttPointOptions {
    /**
     * (Gantt) Events for each single point.
     */
    events?: PlotGanttPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotGanttStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotGanttStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotGanttStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (Gantt) The animation for entering the inactive state.
 */
export interface PlotGanttStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Gantt) The opposite state of a hover for series.
 */
export interface PlotGanttStatesInactiveOptions {
    /**
     * (Gantt) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotGanttStatesInactiveAnimationOptions);
    /**
     * (Gantt) Opacity of series elements (dataLabels, line, area). Set to 1 to
     * disable inactive state.
     */
    opacity?: number;
}
/**
 * (Gantt) 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 PlotGanttStatesNormalOptions {
    /**
     * (Gantt) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotGanttStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotGanttStatesHoverOptions;
    /**
     * (Gantt) The opposite state of a hover for series.
     */
    inactive?: PlotGanttStatesInactiveOptions;
    /**
     * (Gantt) 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?: PlotGanttStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotGanttStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotGanttStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotGanttStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotGanttStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotGanttTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotGanttTooltipOptions {
    /**
     * (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;
    /**
     * (Gantt) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotGanttTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (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;
    /**
     * (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;
    /**
     * (Gantt) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (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;
    /**
     * (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;
    /**
     * (Gantt) The number of milliseconds to wait until the tooltip is hidden
     * when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Gantt) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Gantt) Callback function to format the text of the tooltip for visible
     * null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (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);
    /**
     * (Gantt) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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?: any;
    /**
     * (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) 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;
    /**
     * (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;
    /**
     * (Gantt) A string to prepend to each series' y value. Overridable in each
     * series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (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;
}
/**
 * (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 PlotGanttZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotGaugeAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotGaugeAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotGaugeAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotGaugeConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotGaugeConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotGaugeConnectorsOptions {
    /**
     * (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?: PlotGaugeConnectorsEndMarkerOptions;
    /**
     * (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?: PlotGaugeConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotGaugeConnectorsStartMarkerOptions;
    /**
     * (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 PlotGaugeConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotGaugeDataGroupingOptions {
    /**
     * (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?: (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) 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) 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 PlotGaugeEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotGaugeLabelOptions {
    /**
     * (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) 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 PlotGaugeLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotGaugeLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotGaugeLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotGaugeLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotGaugeAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotGaugeAnimationOptions);
    /**
     * (Highcharts) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotGaugeConnectorsOptions;
    /**
     * (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);
    /**
     * (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?: PlotGaugeDataGroupingOptions;
    /**
     * (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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotGaugeEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotGaugeLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotGaugeLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotGaugeLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotGaugePointOptions;
    /**
     * (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.
     */
    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?: PlotGaugeTooltipOptions;
    /**
     * (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) Events for each single point.
 */
export interface PlotGaugePointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotGaugePointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotGaugePointEventsOptions;
}
/**
 * (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.
 */
export interface PlotGaugeTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotGaugeTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotGaugeTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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, Highmaps) Keyboard navigation for a series
 */
export interface PlotHeatmapAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highmaps) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highmaps) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotHeatmapAccessibilityOptions {
    /**
     * (Highcharts, Highmaps) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highmaps) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highmaps) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highmaps) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotHeatmapAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highmaps) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (Highcharts, Highmaps) Animation is disabled by default on the heatmap
 * series.
 */
export interface PlotHeatmapAnimationOptions {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotHeatmapConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotHeatmapConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotHeatmapConnectorsOptions {
    /**
     * (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?: PlotHeatmapConnectorsEndMarkerOptions;
    /**
     * (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?: PlotHeatmapConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotHeatmapConnectorsStartMarkerOptions;
    /**
     * (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 PlotHeatmapConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotHeatmapDataGroupingOptions {
    /**
     * (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?: (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, Highmaps) Options for the drag handles.
 */
export interface PlotHeatmapDragDropDragHandleOptions {
    /**
     * (Highcharts, Highmaps) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) 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, Highmaps) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highmaps) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highmaps) Style options for the guide box default state.
 */
export interface PlotHeatmapDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highmaps) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highmaps) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highmaps) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highmaps) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotHeatmapDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotHeatmapDragDropOptions {
    /**
     * (Highcharts, Highmaps) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) Options for the drag handles.
     */
    dragHandle?: PlotHeatmapDragDropDragHandleOptions;
    /**
     * (Highcharts, Highmaps) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highmaps) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highmaps) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highmaps) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) 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, Highmaps) 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, Highmaps) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highmaps) Style options for the guide box. The guide box has
     * one state by default, the `default` state.
     */
    guideBox?: (PlotHeatmapDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highmaps) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotHeatmapEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, Highmaps) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, Highmaps) 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;
    /**
     * (Highcharts, Highmaps) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, Highmaps) 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;
    /**
     * (Highcharts, Highmaps) 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;
    /**
     * (Highcharts, Highmaps) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highmaps) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotHeatmapLabelOptions {
    /**
     * (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) 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 PlotHeatmapLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotHeatmapLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotHeatmapLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotHeatmapLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotHeatmapAccessibilityOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotHeatmapConnectorsOptions;
    /**
     * (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, 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);
    /**
     * (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?: PlotHeatmapDataGroupingOptions;
    /**
     * (Highcharts, Highmaps) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highmaps) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotHeatmapDragDropOptions;
    /**
     * (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?: PlotHeatmapEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotHeatmapLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotHeatmapLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotHeatmapLastVisiblePriceOptions;
    /**
     * (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.
     */
    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, Highmaps) The color for the parts of the graph or points
     * that are below the threshold.
     */
    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?: PlotHeatmapPointOptions;
    /**
     * (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?: PlotHeatmapStatesOptions;
    /**
     * (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?: PlotHeatmapTooltipOptions;
    /**
     * (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.
     */
    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<PlotHeatmapZonesOptions>;
}
/**
 * (Highcharts, Highmaps) Events for each single point.
 */
export interface PlotHeatmapPointEventsOptions {
    /**
     * (Highcharts, Highmaps) 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, Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) 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, Highmaps) 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;
    /**
     * (Highcharts, Highmaps) 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;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) 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;
}
/**
 * (Highcharts, Highmaps) Properties for each single point.
 */
export interface PlotHeatmapPointOptions {
    /**
     * (Highcharts, Highmaps) Events for each single point.
     */
    events?: PlotHeatmapPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotHeatmapStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotHeatmapStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highmaps) Options for the hovered series. These settings
 * override the normal state options when a series is moused over or touched.
 */
export interface PlotHeatmapStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotHeatmapStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highmaps) How much to brighten the point on interaction. Requires the
     * main color to be defined in hex or rgb(a) format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highmaps) The color of the shape in this state.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) 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?: (PlotHeatmapStatesHoverHaloOptions|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;
}
/**
 * (Highcharts, Highmaps) The animation for entering the inactive state.
 */
export interface PlotHeatmapStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highmaps) The opposite state of a hover for series.
 */
export interface PlotHeatmapStatesInactiveOptions {
    /**
     * (Highcharts, Highmaps) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotHeatmapStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highmaps) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, Highmaps) 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 PlotHeatmapStatesNormalOptions {
    /**
     * (Highcharts, Highmaps) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotHeatmapStatesOptions {
    /**
     * (Highcharts, Highmaps) Options for the hovered series. These settings
     * override the normal state options when a series is moused over or
     * touched.
     */
    hover?: PlotHeatmapStatesHoverOptions;
    /**
     * (Highcharts, Highmaps) The opposite state of a hover for series.
     */
    inactive?: PlotHeatmapStatesInactiveOptions;
    /**
     * (Highcharts, Highmaps) 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?: PlotHeatmapStatesNormalOptions;
    /**
     * (Highcharts, Highmaps) Specific options for point in selected states,
     * after being selected by allowPointSelect or programmatically.
     */
    select?: PlotHeatmapStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotHeatmapStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotHeatmapStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highmaps) Specific options for point in selected states, after
 * being selected by allowPointSelect or programmatically.
 */
export interface PlotHeatmapStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotHeatmapStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) 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?: (PlotHeatmapStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotHeatmapTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotHeatmapTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotHeatmapTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotHeatmapZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotHistogramAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotHistogramAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotHistogramAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotHistogramConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotHistogramConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotHistogramConnectorsOptions {
    /**
     * (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?: PlotHistogramConnectorsEndMarkerOptions;
    /**
     * (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?: PlotHistogramConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotHistogramConnectorsStartMarkerOptions;
    /**
     * (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 PlotHistogramConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotHistogramDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) 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 PlotHistogramEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotHistogramLabelOptions {
    /**
     * (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) 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 PlotHistogramLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotHistogramLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotHistogramLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotHistogramLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotHistogramAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotHistogramAnimationOptions);
    /**
     * (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) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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) 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 (see online
     * documentation for example) 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?: PlotHistogramConnectorsOptions;
    /**
     * (Highcharts, Highstock, Gantt) When true, each 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);
    /**
     * (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?: PlotHistogramDataGroupingOptions;
    /**
     * (Highcharts) 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?: any;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotHistogramEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    groupZPadding?: number;
    /**
     * (Highcharts) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotHistogramLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotHistogramLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotHistogramLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotHistogramPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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?: PlotHistogramStatesOptions;
    /**
     * (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.
     */
    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;
    /**
     * (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?: PlotHistogramTooltipOptions;
    /**
     * (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.
     */
    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<PlotHistogramZonesOptions>;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotHistogramPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotHistogramPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotHistogramPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotHistogramStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotHistogramStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotHistogramStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotHistogramStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotHistogramStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotHistogramStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotHistogramStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotHistogramStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotHistogramStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotHistogramStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotHistogramStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotHistogramStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotHistogramStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotHistogramStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotHistogramStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotHistogramTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotHistogramTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotHistogramTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) 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 PlotHistogramZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotIkhAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotIkhAccessibilityOptions {
    /**
     * (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?: (object|PlotIkhAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: 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;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotIkhConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotIkhConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotIkhConnectorsOptions {
    /**
     * (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?: PlotIkhConnectorsEndMarkerOptions;
    /**
     * (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?: PlotIkhConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotIkhConnectorsStartMarkerOptions;
    /**
     * (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 PlotIkhConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotIkhDataGroupingOptions {
    /**
     * (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;
    /**
     * (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)]>;
}
/**
 * (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 PlotIkhEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotIkhLabelOptions {
    /**
     * (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) 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 PlotIkhLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotIkhLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotIkhLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotIkhLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotIkhMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotIkhMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotIkhMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotIkhMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotIkhMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotIkhMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotIkhMarkerStatesHoverOptions;
    inactive?: PlotIkhMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotIkhMarkerStatesNormalOptions;
    /**
     * (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?: PlotIkhMarkerStatesSelectOptions;
}
/**
 * (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 PlotIkhMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotIkhAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotIkhAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotIkhConnectorsOptions;
    /**
     * (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 name for 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?: PlotIkhDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotIkhEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotIkhLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotIkhLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotIkhLastVisiblePriceOptions;
    /**
     * (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?: PlotIkhMarkerOptions;
    /**
     * (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.
     */
    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?: PlotIkhPointOptions;
    /**
     * (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?: PlotIkhStatesOptions;
    /**
     * (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.
     */
    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?: PlotIkhTooltipOptions;
    /**
     * (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.
     */
    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<PlotIkhZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotIkhPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotIkhPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotIkhPointEventsOptions;
}
/**
 * (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);
    styles?: any;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotIkhStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotIkhStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotIkhStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotIkhStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotIkhStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotIkhStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotIkhStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotIkhStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotIkhStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotIkhStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotIkhStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotIkhStatesInactiveOptions;
    /**
     * (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?: PlotIkhStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotIkhStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotIkhStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotIkhStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotIkhStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotIkhStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotIkhStatesSelectHaloOptions|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) 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, 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.
 */
export interface PlotIkhTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotIkhTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotIkhTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotIkhZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotItemAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotItemAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotItemAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotItemConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotItemConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotItemConnectorsOptions {
    /**
     * (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?: PlotItemConnectorsEndMarkerOptions;
    /**
     * (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?: PlotItemConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotItemConnectorsStartMarkerOptions;
    /**
     * (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 PlotItemConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotItemDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotItemEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) Fires when the checkbox next to the point 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (Highstock) The line marks the last price from all points.
 */
export interface PlotItemLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotItemLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotItemLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotItemLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotItemMarkerOptions {
    /**
     * (Highcharts) 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) 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) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highcharts) States for a single point marker.
     */
    states?: PlotItemMarkerStatesOptions;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts) The hover state for a single point marker.
 */
export interface PlotItemMarkerStatesHoverOptions {
    /**
     * (Highcharts) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (Highcharts) 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) 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) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (Highcharts) 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) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotItemMarkerStatesInactiveOptions {
    /**
     * (Highcharts) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highcharts) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotItemMarkerStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts) States for a single point marker.
 */
export interface PlotItemMarkerStatesOptions {
    /**
     * (Highcharts) The hover state for a single point marker.
     */
    hover?: PlotItemMarkerStatesHoverOptions;
    inactive?: PlotItemMarkerStatesInactiveOptions;
    /**
     * (Highcharts) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotItemMarkerStatesNormalOptions;
    /**
     * (Highcharts) 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?: PlotItemMarkerStatesSelectOptions;
}
/**
 * (Highcharts) 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 PlotItemMarkerStatesSelectOptions {
    /**
     * (Highcharts) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highcharts) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotItemAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotItemAnimationOptions);
    /**
     * (Highcharts) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotItemConnectorsOptions;
    /**
     * (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);
    /**
     * (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?: PlotItemDataGroupingOptions;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotItemEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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?: PlotItemLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotItemLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotItemMarkerOptions;
    /**
     * (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?: PlotItemPointOptions;
    /**
     * (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?: PlotItemStatesOptions;
    /**
     * (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?: PlotItemTooltipOptions;
    /**
     * (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) Events for each single point.
 */
export interface PlotItemPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    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) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotItemPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotItemPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotItemStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotItemStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface PlotItemStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotItemStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts) How much to brighten the point on interaction. Requires the
     * main color to be defined in hex or rgb(a) format.
     *
     * In styled mode, the hover brightness is by default replaced by a
     * fill-opacity given in the `.highcharts-point-hover` class.
     */
    brightness?: number;
    /**
     * (Highmaps) The color of the shape in this state.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotItemStatesHoverHaloOptions|null);
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotItemStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotItemStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotItemStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotItemStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotItemStatesOptions {
    /**
     * (Highcharts) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotItemStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotItemStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotItemStatesNormalOptions;
    /**
     * (Highcharts) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotItemStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotItemStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotItemStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotItemStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotItemStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotItemStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotItemTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotItemTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotItemTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotKeltnerchannelsAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotKeltnerchannelsAccessibilityOptions {
    /**
     * (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?: (object|PlotKeltnerchannelsAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: 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?: any;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotKeltnerchannelsConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotKeltnerchannelsConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotKeltnerchannelsConnectorsOptions {
    /**
     * (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?: PlotKeltnerchannelsConnectorsEndMarkerOptions;
    /**
     * (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?: PlotKeltnerchannelsConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotKeltnerchannelsConnectorsStartMarkerOptions;
    /**
     * (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 PlotKeltnerchannelsConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotKeltnerchannelsDataGroupingOptions {
    /**
     * (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;
    /**
     * (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)]>;
}
/**
 * (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 PlotKeltnerchannelsEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotKeltnerchannelsLabelOptions {
    /**
     * (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) 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 PlotKeltnerchannelsLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotKeltnerchannelsLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotKeltnerchannelsLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotKeltnerchannelsLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotKeltnerchannelsMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotKeltnerchannelsMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotKeltnerchannelsMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotKeltnerchannelsMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotKeltnerchannelsMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotKeltnerchannelsMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotKeltnerchannelsMarkerStatesHoverOptions;
    inactive?: PlotKeltnerchannelsMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotKeltnerchannelsMarkerStatesNormalOptions;
    /**
     * (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?: PlotKeltnerchannelsMarkerStatesSelectOptions;
}
/**
 * (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 PlotKeltnerchannelsMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotKeltnerchannelsAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotKeltnerchannelsAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotKeltnerchannelsConnectorsOptions;
    /**
     * (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 name for 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?: PlotKeltnerchannelsDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotKeltnerchannelsEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotKeltnerchannelsLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotKeltnerchannelsLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotKeltnerchannelsLastVisiblePriceOptions;
    /**
     * (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?: PlotKeltnerchannelsMarkerOptions;
    /**
     * (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.
     */
    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?: PlotKeltnerchannelsPointOptions;
    /**
     * (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?: PlotKeltnerchannelsStatesOptions;
    /**
     * (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.
     */
    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?: PlotKeltnerchannelsTooltipOptions;
    /**
     * (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.
     */
    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<PlotKeltnerchannelsZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotKeltnerchannelsPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotKeltnerchannelsPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotKeltnerchannelsPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotKeltnerchannelsStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotKeltnerchannelsStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotKeltnerchannelsStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotKeltnerchannelsStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotKeltnerchannelsStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotKeltnerchannelsStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotKeltnerchannelsStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotKeltnerchannelsStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotKeltnerchannelsStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotKeltnerchannelsStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotKeltnerchannelsStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotKeltnerchannelsStatesInactiveOptions;
    /**
     * (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?: PlotKeltnerchannelsStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotKeltnerchannelsStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotKeltnerchannelsStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotKeltnerchannelsStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotKeltnerchannelsStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotKeltnerchannelsStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotKeltnerchannelsStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotKeltnerchannelsTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotKeltnerchannelsTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotKeltnerchannelsTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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;
}
/**
 * (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?: any;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: 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).
 */
export interface PlotKeltnerchannelsZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotLineAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotLineAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotLineAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotLinearregressionAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotLinearregressionAccessibilityOptions {
    /**
     * (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?: (object|PlotLinearregressionAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotLinearregressionangleAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotLinearregressionangleAccessibilityOptions {
    /**
     * (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?: (object|PlotLinearregressionangleAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotLinearregressionangleConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotLinearregressionangleConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotLinearregressionangleConnectorsOptions {
    /**
     * (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?: PlotLinearregressionangleConnectorsEndMarkerOptions;
    /**
     * (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?: PlotLinearregressionangleConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotLinearregressionangleConnectorsStartMarkerOptions;
    /**
     * (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 PlotLinearregressionangleConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotLinearregressionangleDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotLinearregressionangleEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotLinearregressionangleLabelOptions {
    /**
     * (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) 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 PlotLinearregressionangleLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotLinearregressionangleLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotLinearregressionangleLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotLinearregressionangleLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotLinearregressionangleMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotLinearregressionangleMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotLinearregressionangleMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotLinearregressionangleMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotLinearregressionangleMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotLinearregressionangleMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotLinearregressionangleMarkerStatesHoverOptions;
    inactive?: PlotLinearregressionangleMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotLinearregressionangleMarkerStatesNormalOptions;
    /**
     * (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?: PlotLinearregressionangleMarkerStatesSelectOptions;
}
/**
 * (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 PlotLinearregressionangleMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotLinearregressionangleAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotLinearregressionangleAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotLinearregressionangleConnectorsOptions;
    /**
     * (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 name for 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?: PlotLinearregressionangleDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotLinearregressionangleEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotLinearregressionangleLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotLinearregressionangleLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotLinearregressionangleLastVisiblePriceOptions;
    /**
     * (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?: PlotLinearregressionangleMarkerOptions;
    /**
     * (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.
     */
    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?: PlotLinearregressionanglePointOptions;
    /**
     * (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?: PlotLinearregressionangleStatesOptions;
    /**
     * (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.
     */
    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?: PlotLinearregressionangleTooltipOptions;
    /**
     * (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.
     */
    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<PlotLinearregressionangleZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotLinearregressionanglePointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotLinearregressionanglePointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotLinearregressionanglePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotLinearregressionangleStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotLinearregressionangleStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotLinearregressionangleStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotLinearregressionangleStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotLinearregressionangleStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotLinearregressionangleStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotLinearregressionangleStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotLinearregressionangleStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotLinearregressionangleStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotLinearregressionangleStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotLinearregressionangleStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotLinearregressionangleStatesInactiveOptions;
    /**
     * (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?: PlotLinearregressionangleStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotLinearregressionangleStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotLinearregressionangleStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotLinearregressionangleStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotLinearregressionangleStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotLinearregressionangleStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotLinearregressionangleStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotLinearregressionangleTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotLinearregressionangleTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotLinearregressionangleTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotLinearregressionangleZonesOptions {
    /**
     * (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;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotLinearregressionConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotLinearregressionConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotLinearregressionConnectorsOptions {
    /**
     * (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?: PlotLinearregressionConnectorsEndMarkerOptions;
    /**
     * (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?: PlotLinearregressionConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotLinearregressionConnectorsStartMarkerOptions;
    /**
     * (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 PlotLinearregressionConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotLinearregressionDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotLinearregressionEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotLinearregressioninterceptAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotLinearregressioninterceptAccessibilityOptions {
    /**
     * (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?: (object|PlotLinearregressioninterceptAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotLinearregressioninterceptConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotLinearregressioninterceptConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotLinearregressioninterceptConnectorsOptions {
    /**
     * (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?: PlotLinearregressioninterceptConnectorsEndMarkerOptions;
    /**
     * (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?: PlotLinearregressioninterceptConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotLinearregressioninterceptConnectorsStartMarkerOptions;
    /**
     * (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 PlotLinearregressioninterceptConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotLinearregressioninterceptDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotLinearregressioninterceptEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotLinearregressioninterceptLabelOptions {
    /**
     * (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) 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 PlotLinearregressioninterceptLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotLinearregressioninterceptLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotLinearregressioninterceptLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotLinearregressioninterceptLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotLinearregressioninterceptMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotLinearregressioninterceptMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotLinearregressioninterceptMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotLinearregressioninterceptMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotLinearregressioninterceptMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotLinearregressioninterceptMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotLinearregressioninterceptMarkerStatesHoverOptions;
    inactive?: PlotLinearregressioninterceptMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotLinearregressioninterceptMarkerStatesNormalOptions;
    /**
     * (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?: PlotLinearregressioninterceptMarkerStatesSelectOptions;
}
/**
 * (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 PlotLinearregressioninterceptMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotLinearregressioninterceptAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotLinearregressioninterceptAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotLinearregressioninterceptConnectorsOptions;
    /**
     * (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 name for 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?: PlotLinearregressioninterceptDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotLinearregressioninterceptEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotLinearregressioninterceptLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotLinearregressioninterceptLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotLinearregressioninterceptLastVisiblePriceOptions;
    /**
     * (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?: PlotLinearregressioninterceptMarkerOptions;
    /**
     * (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.
     */
    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?: PlotLinearregressioninterceptPointOptions;
    /**
     * (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?: PlotLinearregressioninterceptStatesOptions;
    /**
     * (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.
     */
    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?: PlotLinearregressioninterceptTooltipOptions;
    /**
     * (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.
     */
    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<PlotLinearregressioninterceptZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotLinearregressioninterceptPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotLinearregressioninterceptPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotLinearregressioninterceptPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotLinearregressioninterceptStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotLinearregressioninterceptStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotLinearregressioninterceptStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotLinearregressioninterceptStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotLinearregressioninterceptStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotLinearregressioninterceptStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotLinearregressioninterceptStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotLinearregressioninterceptStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotLinearregressioninterceptStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotLinearregressioninterceptStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotLinearregressioninterceptStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotLinearregressioninterceptStatesInactiveOptions;
    /**
     * (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?: PlotLinearregressioninterceptStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotLinearregressioninterceptStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotLinearregressioninterceptStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotLinearregressioninterceptStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotLinearregressioninterceptStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotLinearregressioninterceptStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotLinearregressioninterceptStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotLinearregressioninterceptTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotLinearregressioninterceptTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotLinearregressioninterceptTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotLinearregressioninterceptZonesOptions {
    /**
     * (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;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotLinearregressionLabelOptions {
    /**
     * (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) 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 PlotLinearregressionLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotLinearregressionLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotLinearregressionLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotLinearregressionLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotLinearregressionMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotLinearregressionMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotLinearregressionMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotLinearregressionMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotLinearregressionMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotLinearregressionMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotLinearregressionMarkerStatesHoverOptions;
    inactive?: PlotLinearregressionMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotLinearregressionMarkerStatesNormalOptions;
    /**
     * (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?: PlotLinearregressionMarkerStatesSelectOptions;
}
/**
 * (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 PlotLinearregressionMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotLinearregressionAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotLinearregressionAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotLinearregressionConnectorsOptions;
    /**
     * (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 name for 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?: PlotLinearregressionDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotLinearregressionEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotLinearregressionLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotLinearregressionLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotLinearregressionLastVisiblePriceOptions;
    /**
     * (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?: PlotLinearregressionMarkerOptions;
    /**
     * (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.
     */
    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?: PlotLinearregressionPointOptions;
    /**
     * (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?: PlotLinearregressionStatesOptions;
    /**
     * (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.
     */
    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?: PlotLinearregressionTooltipOptions;
    /**
     * (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.
     */
    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<PlotLinearregressionZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotLinearregressionPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotLinearregressionPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotLinearregressionPointEventsOptions;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotLinearregressionslopeAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotLinearregressionslopeAccessibilityOptions {
    /**
     * (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?: (object|PlotLinearregressionslopeAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotLinearregressionslopeConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotLinearregressionslopeConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotLinearregressionslopeConnectorsOptions {
    /**
     * (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?: PlotLinearregressionslopeConnectorsEndMarkerOptions;
    /**
     * (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?: PlotLinearregressionslopeConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotLinearregressionslopeConnectorsStartMarkerOptions;
    /**
     * (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 PlotLinearregressionslopeConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotLinearregressionslopeDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotLinearregressionslopeEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotLinearregressionslopeLabelOptions {
    /**
     * (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) 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 PlotLinearregressionslopeLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotLinearregressionslopeLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotLinearregressionslopeLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotLinearregressionslopeLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotLinearregressionslopeMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotLinearregressionslopeMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotLinearregressionslopeMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotLinearregressionslopeMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotLinearregressionslopeMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotLinearregressionslopeMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotLinearregressionslopeMarkerStatesHoverOptions;
    inactive?: PlotLinearregressionslopeMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotLinearregressionslopeMarkerStatesNormalOptions;
    /**
     * (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?: PlotLinearregressionslopeMarkerStatesSelectOptions;
}
/**
 * (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 PlotLinearregressionslopeMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotLinearregressionslopeAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotLinearregressionslopeAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotLinearregressionslopeConnectorsOptions;
    /**
     * (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 name for 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?: PlotLinearregressionslopeDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotLinearregressionslopeEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotLinearregressionslopeLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotLinearregressionslopeLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotLinearregressionslopeLastVisiblePriceOptions;
    /**
     * (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?: PlotLinearregressionslopeMarkerOptions;
    /**
     * (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.
     */
    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?: PlotLinearregressionslopePointOptions;
    /**
     * (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?: PlotLinearregressionslopeStatesOptions;
    /**
     * (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.
     */
    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?: PlotLinearregressionslopeTooltipOptions;
    /**
     * (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.
     */
    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<PlotLinearregressionslopeZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotLinearregressionslopePointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotLinearregressionslopePointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotLinearregressionslopePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotLinearregressionslopeStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotLinearregressionslopeStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotLinearregressionslopeStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotLinearregressionslopeStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotLinearregressionslopeStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotLinearregressionslopeStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotLinearregressionslopeStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotLinearregressionslopeStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotLinearregressionslopeStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotLinearregressionslopeStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotLinearregressionslopeStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotLinearregressionslopeStatesInactiveOptions;
    /**
     * (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?: PlotLinearregressionslopeStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotLinearregressionslopeStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotLinearregressionslopeStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotLinearregressionslopeStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotLinearregressionslopeStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotLinearregressionslopeStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotLinearregressionslopeStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotLinearregressionslopeTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotLinearregressionslopeTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotLinearregressionslopeTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotLinearregressionslopeZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotLinearregressionStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotLinearregressionStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotLinearregressionStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotLinearregressionStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotLinearregressionStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotLinearregressionStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotLinearregressionStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotLinearregressionStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotLinearregressionStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotLinearregressionStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotLinearregressionStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotLinearregressionStatesInactiveOptions;
    /**
     * (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?: PlotLinearregressionStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotLinearregressionStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotLinearregressionStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotLinearregressionStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotLinearregressionStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotLinearregressionStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotLinearregressionStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotLinearregressionTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotLinearregressionTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotLinearregressionTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotLinearregressionZonesOptions {
    /**
     * (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;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotLineConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotLineConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotLineConnectorsOptions {
    /**
     * (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?: PlotLineConnectorsEndMarkerOptions;
    /**
     * (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?: PlotLineConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotLineConnectorsStartMarkerOptions;
    /**
     * (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 PlotLineConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotLineDataGroupingOptions {
    /**
     * (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?: (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) Options for the drag handles.
 */
export interface PlotLineDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotLineDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotLineDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotLineDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotLineDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotLineDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotLineEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotLineLabelOptions {
    /**
     * (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) 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 PlotLineLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotLineLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotLineLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotLineLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotLineMarkerOptions {
    /**
     * (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, 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?: (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?: PlotLineMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface PlotLineMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface PlotLineMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 PlotLineMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface PlotLineMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: PlotLineMarkerStatesHoverOptions;
    inactive?: PlotLineMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: PlotLineMarkerStatesNormalOptions;
    /**
     * (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?: PlotLineMarkerStatesSelectOptions;
}
/**
 * (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 PlotLineMarkerStatesSelectOptions {
    /**
     * (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, 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, 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotLineAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotLineAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotLineConnectorsOptions;
    /**
     * (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 name for 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?: PlotLineDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotLineDragDropOptions;
    /**
     * (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?: PlotLineEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotLineLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotLineLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotLineLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotLineMarkerOptions;
    /**
     * (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.
     */
    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?: PlotLinePointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotLineStatesOptions;
    /**
     * (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.
     */
    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?: PlotLineTooltipOptions;
    /**
     * (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.
     */
    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<PlotLineZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotLinePointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotLinePointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotLinePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotLineStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotLineStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Options for the hovered series. These settings
 * override the normal state options when a series is moused over or touched.
 */
export interface PlotLineStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotLineStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts, 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?: (PlotLineStatesHoverHaloOptions|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;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotLineStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotLineStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotLineStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotLineStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotLineStatesOptions {
    /**
     * (Highcharts, Highstock) Options for the hovered series. These settings
     * override the normal state options when a series is moused over or
     * touched.
     */
    hover?: PlotLineStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotLineStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotLineStatesNormalOptions;
    /**
     * (Highcharts, Highstock) Specific options for point in selected states,
     * after being selected by allowPointSelect or programmatically.
     */
    select?: PlotLineStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotLineStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotLineStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Specific options for point in selected states, after
 * being selected by allowPointSelect or programmatically.
 */
export interface PlotLineStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotLineStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, 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?: (PlotLineStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotLineTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotLineTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotLineTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotLineZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotMacdAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotMacdAccessibilityOptions {
    /**
     * (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?: (object|PlotMacdAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotMacdConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotMacdConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotMacdConnectorsOptions {
    /**
     * (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?: PlotMacdConnectorsEndMarkerOptions;
    /**
     * (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?: PlotMacdConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotMacdConnectorsStartMarkerOptions;
    /**
     * (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 PlotMacdConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotMacdDataGroupingOptions {
    /**
     * (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;
    /**
     * (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)]>;
}
/**
 * (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 PlotMacdEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotMacdLabelOptions {
    /**
     * (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) 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 PlotMacdLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotMacdLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotMacdLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotMacdLastVisiblePriceLabelOptions;
}
/**
 * (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<PlotMacdMacdLineZonesOptions>;
}
export interface PlotMacdMacdLineStylesOptions {
    /**
     * (Highstock) Color of the line.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: 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).
 */
export interface PlotMacdMacdLineZonesOptions {
    /**
     * (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;
}
/**
 * (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.
 */
export interface PlotMacdMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotMacdMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotMacdMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotMacdMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotMacdMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotMacdMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotMacdMarkerStatesHoverOptions;
    inactive?: PlotMacdMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotMacdMarkerStatesNormalOptions;
    /**
     * (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?: PlotMacdMarkerStatesSelectOptions;
}
/**
 * (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 PlotMacdMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotMacdAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotMacdAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotMacdConnectorsOptions;
    /**
     * (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 name for 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?: PlotMacdDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotMacdEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotMacdLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotMacdLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotMacdLastVisiblePriceOptions;
    /**
     * (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?: PlotMacdMarkerOptions;
    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.
     */
    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?: PlotMacdPointOptions;
    /**
     * (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?: PlotMacdStatesOptions;
    /**
     * (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.
     */
    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?: PlotMacdTooltipOptions;
    /**
     * (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.
     */
    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<PlotMacdZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotMacdPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotMacdPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotMacdPointEventsOptions;
}
/**
 * (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<PlotMacdSignalLineZonesOptions>;
}
export interface PlotMacdSignalLineStylesOptions {
    /**
     * (Highstock) Color of the line.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: 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).
 */
export interface PlotMacdSignalLineZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMacdStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMacdStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotMacdStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMacdStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: PlotMacdStatesHoverHaloOptions;
    /**
     * (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) The animation for entering the inactive state.
 */
export interface PlotMacdStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotMacdStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMacdStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotMacdStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotMacdStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotMacdStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotMacdStatesInactiveOptions;
    /**
     * (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?: PlotMacdStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotMacdStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMacdStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMacdStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotMacdStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotMacdStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotMacdStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotMacdTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotMacdTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotMacdTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotMacdZonesOptions {
    /**
     * (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;
}
/**
 * (Highmaps) Keyboard navigation for a series
 */
export interface PlotMapAccessibilityKeyboardNavigationOptions {
    /**
     * (Highmaps) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highmaps) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotMapAccessibilityOptions {
    /**
     * (Highmaps) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highmaps) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highmaps) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highmaps) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotMapAccessibilityKeyboardNavigationOptions);
    /**
     * (Highmaps) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Highmaps) Keyboard navigation for a series
 */
export interface PlotMapbubbleAccessibilityKeyboardNavigationOptions {
    /**
     * (Highmaps) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highmaps) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotMapbubbleAccessibilityOptions {
    /**
     * (Highmaps) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highmaps) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highmaps) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highmaps) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotMapbubbleAccessibilityKeyboardNavigationOptions);
    /**
     * (Highmaps) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotMapbubbleConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotMapbubbleConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotMapbubbleConnectorsOptions {
    /**
     * (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?: PlotMapbubbleConnectorsEndMarkerOptions;
    /**
     * (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?: PlotMapbubbleConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotMapbubbleConnectorsStartMarkerOptions;
    /**
     * (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 PlotMapbubbleConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotMapbubbleDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (Highmaps) Options for the drag handles.
 */
export interface PlotMapbubbleDragDropDragHandleOptions {
    /**
     * (Highmaps) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highmaps) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highmaps) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highmaps) Style options for the guide box default state.
 */
export interface PlotMapbubbleDragDropGuideBoxDefaultOptions {
    /**
     * (Highmaps) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highmaps) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highmaps) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highmaps) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highmaps) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotMapbubbleDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotMapbubbleDragDropOptions {
    /**
     * (Highmaps) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highmaps) Enable dragging in the Y dimension. Note that this is not
     * supported for TreeGrid axes (the default axis type in Gantt charts).
     */
    draggableY?: boolean;
    /**
     * (Highmaps) Options for the drag handles.
     */
    dragHandle?: PlotMapbubbleDragDropDragHandleOptions;
    /**
     * (Highmaps) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highmaps) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highmaps) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highmaps) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) Group the points by a property. Points with the same property
     * value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highmaps) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotMapbubbleDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highmaps) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotMapbubbleEventsOptions {
    /**
     * (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;
    /**
     * (Highmaps) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) Fires when the mouse enters the graph. One parameter, `event`,
     * is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highmaps) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotMapbubbleLabelOptions {
    /**
     * (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) 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 PlotMapbubbleLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotMapbubbleLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotMapbubbleLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotMapbubbleLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotMapbubbleMarkerOptions {
    /**
     * (Highmaps) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The fill opacity of the bubble markers.
     */
    fillOpacity?: number;
    /**
     * (Highmaps) The color of the point marker's outline. When `undefined`, the
     * series' or point's color is used.
     */
    lineColor?: any;
    /**
     * (Highmaps) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highmaps) States for a single point marker.
     */
    states?: PlotMapbubbleMarkerStatesOptions;
    /**
     * (Highmaps) A predefined shape or symbol for the marker. Possible values
     * are "circle", "square", "diamond", "triangle" and "triangle-down".
     *
     * Additionally, the URL to a graphic can be given on the 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);
}
/**
 * (Highmaps) The hover state for a single point marker.
 */
export interface PlotMapbubbleMarkerStatesHoverOptions {
    /**
     * (Highmaps) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highmaps) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (Highmaps) 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);
    /**
     * (Highmaps) 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);
    /**
     * (Highmaps) The width of the point marker's outline. When `undefined`, the
     * series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highmaps) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotMapbubbleMarkerStatesInactiveOptions {
    /**
     * (Highmaps) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highmaps) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highmaps) The normal state of a single point marker. Currently only used for
 * setting animation when returning to normal state from hover.
 */
export interface PlotMapbubbleMarkerStatesNormalOptions {
    /**
     * (Highmaps) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highmaps) States for a single point marker.
 */
export interface PlotMapbubbleMarkerStatesOptions {
    /**
     * (Highmaps) The hover state for a single point marker.
     */
    hover?: PlotMapbubbleMarkerStatesHoverOptions;
    inactive?: PlotMapbubbleMarkerStatesInactiveOptions;
    /**
     * (Highmaps) The normal state of a single point marker. Currently only used
     * for setting animation when returning to normal state from hover.
     */
    normal?: PlotMapbubbleMarkerStatesNormalOptions;
    /**
     * (Highmaps) 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?: PlotMapbubbleMarkerStatesSelectOptions;
}
/**
 * (Highmaps) 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 PlotMapbubbleMarkerStatesSelectOptions {
    /**
     * (Highmaps) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highmaps) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The color of the point marker's outline. When `undefined`, the
     * series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highmaps) The radius of the point marker. In hover state, it defaults to
     * the normal state's radius + 2.
     */
    radius?: 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. Requires the accessibility
     * module.
     */
    accessibility?: (object|PlotMapbubbleAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotMapbubbleAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotMapbubbleConnectorsOptions;
    /**
     * (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;
    /**
     * (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 name for 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?: PlotMapbubbleDataGroupingOptions;
    /**
     * (Highmaps) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highmaps) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotMapbubbleDragDropOptions;
    /**
     * (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?: PlotMapbubbleEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotMapbubbleLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotMapbubbleLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotMapbubbleLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotMapbubbleMarkerOptions;
    /**
     * (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?: PlotMapbubblePointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotMapbubbleStatesOptions;
    /**
     * (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?: PlotMapbubbleTooltipOptions;
    /**
     * (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.
     */
    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<PlotMapbubbleZonesOptions>;
    /**
     * (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;
}
/**
 * (Highmaps) Events for each single point.
 */
export interface PlotMapbubblePointEventsOptions {
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
}
/**
 * (Highmaps) Properties for each single point.
 */
export interface PlotMapbubblePointOptions {
    /**
     * (Highmaps) Events for each single point.
     */
    events?: PlotMapbubblePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMapbubbleStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMapbubbleStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highmaps) Options for the hovered series. These settings override the normal
 * state options when a series is moused over or touched.
 */
export interface PlotMapbubbleStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMapbubbleStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highmaps) 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?: PlotMapbubbleStatesHoverHaloOptions;
    /**
     * (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;
}
/**
 * (Highmaps) The animation for entering the inactive state.
 */
export interface PlotMapbubbleStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highmaps) The opposite state of a hover for series.
 */
export interface PlotMapbubbleStatesInactiveOptions {
    /**
     * (Highmaps) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMapbubbleStatesInactiveAnimationOptions);
    /**
     * (Highmaps) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highmaps) 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 PlotMapbubbleStatesNormalOptions {
    /**
     * (Highmaps) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotMapbubbleStatesOptions {
    /**
     * (Highmaps) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotMapbubbleStatesHoverOptions;
    /**
     * (Highmaps) The opposite state of a hover for series.
     */
    inactive?: PlotMapbubbleStatesInactiveOptions;
    /**
     * (Highmaps) 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?: PlotMapbubbleStatesNormalOptions;
    /**
     * (Highmaps) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotMapbubbleStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMapbubbleStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMapbubbleStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highmaps) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotMapbubbleStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotMapbubbleStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) 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?: (PlotMapbubbleStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotMapbubbleTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotMapbubbleTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotMapbubbleTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotMapbubbleZonesOptions {
    /**
     * (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;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotMapConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotMapConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotMapConnectorsOptions {
    /**
     * (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?: PlotMapConnectorsEndMarkerOptions;
    /**
     * (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?: PlotMapConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotMapConnectorsStartMarkerOptions;
    /**
     * (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 PlotMapConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotMapDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (Highmaps) Options for the drag handles.
 */
export interface PlotMapDragDropDragHandleOptions {
    /**
     * (Highmaps) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highmaps) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highmaps) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highmaps) Style options for the guide box default state.
 */
export interface PlotMapDragDropGuideBoxDefaultOptions {
    /**
     * (Highmaps) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highmaps) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highmaps) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highmaps) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highmaps) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotMapDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotMapDragDropOptions {
    /**
     * (Highmaps) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highmaps) Enable dragging in the Y dimension. Note that this is not
     * supported for TreeGrid axes (the default axis type in Gantt charts).
     */
    draggableY?: boolean;
    /**
     * (Highmaps) Options for the drag handles.
     */
    dragHandle?: PlotMapDragDropDragHandleOptions;
    /**
     * (Highmaps) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highmaps) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highmaps) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highmaps) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) Group the points by a property. Points with the same property
     * value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highmaps) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotMapDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highmaps) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotMapEventsOptions {
    /**
     * (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;
    /**
     * (Highmaps) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) Fires when the mouse enters the graph. One parameter, `event`,
     * is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highmaps) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotMapLabelOptions {
    /**
     * (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) 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 PlotMapLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotMapLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotMapLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotMapLastVisiblePriceLabelOptions;
}
/**
 * (Highmaps) Keyboard navigation for a series
 */
export interface PlotMaplineAccessibilityKeyboardNavigationOptions {
    /**
     * (Highmaps) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highmaps) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotMaplineAccessibilityOptions {
    /**
     * (Highmaps) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highmaps) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highmaps) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highmaps) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotMaplineAccessibilityKeyboardNavigationOptions);
    /**
     * (Highmaps) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotMaplineConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotMaplineConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotMaplineConnectorsOptions {
    /**
     * (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?: PlotMaplineConnectorsEndMarkerOptions;
    /**
     * (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?: PlotMaplineConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotMaplineConnectorsStartMarkerOptions;
    /**
     * (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 PlotMaplineConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotMaplineDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (Highmaps) Options for the drag handles.
 */
export interface PlotMaplineDragDropDragHandleOptions {
    /**
     * (Highmaps) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highmaps) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highmaps) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highmaps) Style options for the guide box default state.
 */
export interface PlotMaplineDragDropGuideBoxDefaultOptions {
    /**
     * (Highmaps) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highmaps) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highmaps) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highmaps) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highmaps) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotMaplineDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotMaplineDragDropOptions {
    /**
     * (Highmaps) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highmaps) Enable dragging in the Y dimension. Note that this is not
     * supported for TreeGrid axes (the default axis type in Gantt charts).
     */
    draggableY?: boolean;
    /**
     * (Highmaps) Options for the drag handles.
     */
    dragHandle?: PlotMaplineDragDropDragHandleOptions;
    /**
     * (Highmaps) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highmaps) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highmaps) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highmaps) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) Group the points by a property. Points with the same property
     * value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highmaps) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotMaplineDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highmaps) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotMaplineEventsOptions {
    /**
     * (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;
    /**
     * (Highmaps) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) Fires when the mouse enters the graph. One parameter, `event`,
     * is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highmaps) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotMaplineLabelOptions {
    /**
     * (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) 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 PlotMaplineLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotMaplineLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotMaplineLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotMaplineLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the accessibility
     * module.
     */
    accessibility?: (object|PlotMaplineAccessibilityOptions);
    /**
     * (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:
     *
     * - `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.
     *
     * Requires `modules/boost.js`.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: 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;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotMaplineConnectorsOptions;
    /**
     * (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;
    /**
     * (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 name for 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?: PlotMaplineDataGroupingOptions;
    /**
     * (Highmaps) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highmaps) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotMaplineDragDropOptions;
    /**
     * (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?: PlotMaplineEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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;
    /**
     * (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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotMaplineLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotMaplineLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotMaplineLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotMaplinePointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotMaplineStatesOptions;
    /**
     * (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?: PlotMaplineTooltipOptions;
    /**
     * (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.
     */
    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<PlotMaplineZonesOptions>;
}
/**
 * (Highmaps) Events for each single point.
 */
export interface PlotMaplinePointEventsOptions {
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
}
/**
 * (Highmaps) Properties for each single point.
 */
export interface PlotMaplinePointOptions {
    /**
     * (Highmaps) Events for each single point.
     */
    events?: PlotMaplinePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMaplineStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMaplineStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highmaps) Options for the hovered series. These settings override the normal
 * state options when a series is moused over or touched.
 */
export interface PlotMaplineStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMaplineStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highmaps) 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?: (PlotMaplineStatesHoverHaloOptions|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;
}
/**
 * (Highmaps) The animation for entering the inactive state.
 */
export interface PlotMaplineStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highmaps) The opposite state of a hover for series.
 */
export interface PlotMaplineStatesInactiveOptions {
    /**
     * (Highmaps) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMaplineStatesInactiveAnimationOptions);
    /**
     * (Highmaps) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highmaps) 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 PlotMaplineStatesNormalOptions {
    /**
     * (Highmaps) Animation when returning to normal state after hovering.
     */
    animation?: boolean;
}
export interface PlotMaplineStatesOptions {
    /**
     * (Highmaps) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotMaplineStatesHoverOptions;
    /**
     * (Highmaps) The opposite state of a hover for series.
     */
    inactive?: PlotMaplineStatesInactiveOptions;
    /**
     * (Highmaps) 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?: PlotMaplineStatesNormalOptions;
    /**
     * (Highmaps) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotMaplineStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMaplineStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMaplineStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highmaps) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotMaplineStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotMaplineStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (Highmaps) 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?: (PlotMaplineStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotMaplineTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotMaplineTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotMaplineTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotMaplineZonesOptions {
    /**
     * (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;
}
/**
 * (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. Requires the accessibility
     * module.
     */
    accessibility?: (object|PlotMapAccessibilityOptions);
    /**
     * (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:
     *
     * - `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.
     *
     * Requires `modules/boost.js`.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: 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;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotMapConnectorsOptions;
    /**
     * (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;
    /**
     * (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 name for 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?: PlotMapDataGroupingOptions;
    /**
     * (Highmaps) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highmaps) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotMapDragDropOptions;
    /**
     * (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?: PlotMapEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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;
    /**
     * (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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotMapLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotMapLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotMapLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotMapPointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotMapStatesOptions;
    /**
     * (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?: PlotMapTooltipOptions;
    /**
     * (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.
     */
    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<PlotMapZonesOptions>;
}
/**
 * (Highmaps) Keyboard navigation for a series
 */
export interface PlotMappointAccessibilityKeyboardNavigationOptions {
    /**
     * (Highmaps) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highmaps) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotMappointAccessibilityOptions {
    /**
     * (Highmaps) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highmaps) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highmaps) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highmaps) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotMappointAccessibilityKeyboardNavigationOptions);
    /**
     * (Highmaps) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotMappointConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotMappointConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotMappointConnectorsOptions {
    /**
     * (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?: PlotMappointConnectorsEndMarkerOptions;
    /**
     * (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?: PlotMappointConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotMappointConnectorsStartMarkerOptions;
    /**
     * (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 PlotMappointConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotMappointDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (Highmaps) Options for the drag handles.
 */
export interface PlotMappointDragDropDragHandleOptions {
    /**
     * (Highmaps) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highmaps) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highmaps) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highmaps) Style options for the guide box default state.
 */
export interface PlotMappointDragDropGuideBoxDefaultOptions {
    /**
     * (Highmaps) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highmaps) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highmaps) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highmaps) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highmaps) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotMappointDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotMappointDragDropOptions {
    /**
     * (Highmaps) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highmaps) Enable dragging in the Y dimension. Note that this is not
     * supported for TreeGrid axes (the default axis type in Gantt charts).
     */
    draggableY?: boolean;
    /**
     * (Highmaps) Options for the drag handles.
     */
    dragHandle?: PlotMappointDragDropDragHandleOptions;
    /**
     * (Highmaps) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highmaps) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highmaps) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highmaps) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) Group the points by a property. Points with the same property
     * value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highmaps) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotMappointDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highmaps) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highmaps) Events for each single point.
 */
export interface PlotMapPointEventsOptions {
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
}
/**
 * (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.
 */
export interface PlotMappointEventsOptions {
    /**
     * (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;
    /**
     * (Highmaps) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) Fires when the mouse enters the graph. One parameter, `event`,
     * is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highmaps) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotMappointLabelOptions {
    /**
     * (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) 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 PlotMappointLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotMappointLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotMappointLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotMappointLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotMappointMarkerOptions {
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) Image markers only. Set the image width explicitly. When using
     * this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highmaps) The color of the point marker's outline. When `undefined`, the
     * series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highmaps) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highmaps) States for a single point marker.
     */
    states?: PlotMappointMarkerStatesOptions;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) Image markers only. Set the image width explicitly. When using
     * this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highmaps) The hover state for a single point marker.
 */
export interface PlotMappointMarkerStatesHoverOptions {
    /**
     * (Highmaps) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highmaps) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (Highmaps) 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);
    /**
     * (Highmaps) 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);
    /**
     * (Highmaps) The width of the point marker's outline. When `undefined`, the
     * series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highmaps) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotMappointMarkerStatesInactiveOptions {
    /**
     * (Highmaps) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highmaps) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highmaps) The normal state of a single point marker. Currently only used for
 * setting animation when returning to normal state from hover.
 */
export interface PlotMappointMarkerStatesNormalOptions {
    /**
     * (Highmaps) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highmaps) States for a single point marker.
 */
export interface PlotMappointMarkerStatesOptions {
    /**
     * (Highmaps) The hover state for a single point marker.
     */
    hover?: PlotMappointMarkerStatesHoverOptions;
    inactive?: PlotMappointMarkerStatesInactiveOptions;
    /**
     * (Highmaps) The normal state of a single point marker. Currently only used
     * for setting animation when returning to normal state from hover.
     */
    normal?: PlotMappointMarkerStatesNormalOptions;
    /**
     * (Highmaps) 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?: PlotMappointMarkerStatesSelectOptions;
}
/**
 * (Highmaps) 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 PlotMappointMarkerStatesSelectOptions {
    /**
     * (Highmaps) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highmaps) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The color of the point marker's outline. When `undefined`, the
     * series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highmaps) The radius of the point marker. In hover state, it defaults to
     * the normal state's radius + 2.
     */
    radius?: 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. Requires the accessibility
     * module.
     */
    accessibility?: (object|PlotMappointAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotMappointAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotMappointConnectorsOptions;
    /**
     * (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;
    /**
     * (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 name for 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?: PlotMappointDataGroupingOptions;
    /**
     * (Highmaps) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highmaps) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotMappointDragDropOptions;
    /**
     * (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?: PlotMappointEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotMappointLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotMappointLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotMappointLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotMappointMarkerOptions;
    /**
     * (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.
     */
    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?: PlotMappointPointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotMappointStatesOptions;
    /**
     * (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?: PlotMappointTooltipOptions;
    /**
     * (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.
     */
    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<PlotMappointZonesOptions>;
}
/**
 * (Highmaps) Properties for each single point.
 */
export interface PlotMapPointOptions {
    /**
     * (Highmaps) Events for each single point.
     */
    events?: PlotMapPointEventsOptions;
}
/**
 * (Highmaps) Events for each single point.
 */
export interface PlotMappointPointEventsOptions {
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
}
/**
 * (Highmaps) Properties for each single point.
 */
export interface PlotMappointPointOptions {
    /**
     * (Highmaps) Events for each single point.
     */
    events?: PlotMappointPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMappointStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMappointStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highmaps) Options for the hovered series. These settings override the normal
 * state options when a series is moused over or touched.
 */
export interface PlotMappointStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMappointStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highmaps) 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?: (PlotMappointStatesHoverHaloOptions|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;
}
/**
 * (Highmaps) The animation for entering the inactive state.
 */
export interface PlotMappointStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highmaps) The opposite state of a hover for series.
 */
export interface PlotMappointStatesInactiveOptions {
    /**
     * (Highmaps) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMappointStatesInactiveAnimationOptions);
    /**
     * (Highmaps) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highmaps) 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 PlotMappointStatesNormalOptions {
    /**
     * (Highmaps) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotMappointStatesOptions {
    /**
     * (Highmaps) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotMappointStatesHoverOptions;
    /**
     * (Highmaps) The opposite state of a hover for series.
     */
    inactive?: PlotMappointStatesInactiveOptions;
    /**
     * (Highmaps) 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?: PlotMappointStatesNormalOptions;
    /**
     * (Highmaps) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotMappointStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMappointStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMappointStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highmaps) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotMappointStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotMappointStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) 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?: (PlotMappointStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotMappointTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotMappointTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotMappointTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotMappointZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMapStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMapStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highmaps) Options for the hovered series. These settings override the normal
 * state options when a series is moused over or touched.
 */
export interface PlotMapStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMapStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highmaps) 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?: (PlotMapStatesHoverHaloOptions|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;
}
/**
 * (Highmaps) The animation for entering the inactive state.
 */
export interface PlotMapStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highmaps) The opposite state of a hover for series.
 */
export interface PlotMapStatesInactiveOptions {
    /**
     * (Highmaps) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMapStatesInactiveAnimationOptions);
    /**
     * (Highmaps) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highmaps) 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 PlotMapStatesNormalOptions {
    /**
     * (Highmaps) Animation when returning to normal state after hovering.
     */
    animation?: boolean;
}
export interface PlotMapStatesOptions {
    /**
     * (Highmaps) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotMapStatesHoverOptions;
    /**
     * (Highmaps) The opposite state of a hover for series.
     */
    inactive?: PlotMapStatesInactiveOptions;
    /**
     * (Highmaps) 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?: PlotMapStatesNormalOptions;
    /**
     * (Highmaps) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotMapStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMapStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMapStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highmaps) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotMapStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotMapStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (Highmaps) 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?: (PlotMapStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotMapTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotMapTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotMapTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotMapZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotMfiAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotMfiAccessibilityOptions {
    /**
     * (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?: (object|PlotMfiAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotMfiConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotMfiConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotMfiConnectorsOptions {
    /**
     * (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?: PlotMfiConnectorsEndMarkerOptions;
    /**
     * (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?: PlotMfiConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotMfiConnectorsStartMarkerOptions;
    /**
     * (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 PlotMfiConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotMfiDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotMfiEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotMfiLabelOptions {
    /**
     * (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) 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 PlotMfiLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotMfiLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotMfiLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotMfiLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotMfiMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotMfiMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotMfiMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotMfiMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotMfiMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotMfiMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotMfiMarkerStatesHoverOptions;
    inactive?: PlotMfiMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotMfiMarkerStatesNormalOptions;
    /**
     * (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?: PlotMfiMarkerStatesSelectOptions;
}
/**
 * (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 PlotMfiMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotMfiAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotMfiAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotMfiConnectorsOptions;
    /**
     * (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 name for 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?: PlotMfiDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotMfiEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotMfiLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotMfiLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotMfiLastVisiblePriceOptions;
    /**
     * (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?: PlotMfiMarkerOptions;
    /**
     * (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.
     */
    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?: PlotMfiPointOptions;
    /**
     * (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?: PlotMfiStatesOptions;
    /**
     * (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.
     */
    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?: PlotMfiTooltipOptions;
    /**
     * (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.
     */
    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<PlotMfiZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotMfiPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotMfiPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotMfiPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMfiStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMfiStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotMfiStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMfiStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotMfiStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotMfiStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotMfiStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMfiStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotMfiStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotMfiStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotMfiStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotMfiStatesInactiveOptions;
    /**
     * (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?: PlotMfiStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotMfiStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMfiStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMfiStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotMfiStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotMfiStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotMfiStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotMfiTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotMfiTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotMfiTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotMfiZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotMomentumAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotMomentumAccessibilityOptions {
    /**
     * (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?: (object|PlotMomentumAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotMomentumConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotMomentumConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotMomentumConnectorsOptions {
    /**
     * (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?: PlotMomentumConnectorsEndMarkerOptions;
    /**
     * (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?: PlotMomentumConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotMomentumConnectorsStartMarkerOptions;
    /**
     * (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 PlotMomentumConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotMomentumDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotMomentumEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotMomentumLabelOptions {
    /**
     * (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) 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 PlotMomentumLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotMomentumLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotMomentumLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotMomentumLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotMomentumMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotMomentumMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotMomentumMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotMomentumMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotMomentumMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotMomentumMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotMomentumMarkerStatesHoverOptions;
    inactive?: PlotMomentumMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotMomentumMarkerStatesNormalOptions;
    /**
     * (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?: PlotMomentumMarkerStatesSelectOptions;
}
/**
 * (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 PlotMomentumMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotMomentumAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotMomentumAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotMomentumConnectorsOptions;
    /**
     * (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 name for 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?: PlotMomentumDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotMomentumEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotMomentumLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotMomentumLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotMomentumLastVisiblePriceOptions;
    /**
     * (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?: PlotMomentumMarkerOptions;
    /**
     * (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.
     */
    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?: PlotMomentumPointOptions;
    /**
     * (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?: PlotMomentumStatesOptions;
    /**
     * (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.
     */
    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?: PlotMomentumTooltipOptions;
    /**
     * (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.
     */
    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<PlotMomentumZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotMomentumPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotMomentumPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotMomentumPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMomentumStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMomentumStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotMomentumStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMomentumStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotMomentumStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotMomentumStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotMomentumStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotMomentumStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotMomentumStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotMomentumStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotMomentumStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotMomentumStatesInactiveOptions;
    /**
     * (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?: PlotMomentumStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotMomentumStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotMomentumStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotMomentumStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotMomentumStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotMomentumStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotMomentumStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotMomentumTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotMomentumTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotMomentumTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotMomentumZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotNatrAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotNatrAccessibilityOptions {
    /**
     * (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?: (object|PlotNatrAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotNatrConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotNatrConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotNatrConnectorsOptions {
    /**
     * (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?: PlotNatrConnectorsEndMarkerOptions;
    /**
     * (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?: PlotNatrConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotNatrConnectorsStartMarkerOptions;
    /**
     * (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 PlotNatrConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotNatrDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotNatrEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotNatrLabelOptions {
    /**
     * (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) 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 PlotNatrLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotNatrLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotNatrLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotNatrLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotNatrMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotNatrMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotNatrMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotNatrMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotNatrMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotNatrMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotNatrMarkerStatesHoverOptions;
    inactive?: PlotNatrMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotNatrMarkerStatesNormalOptions;
    /**
     * (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?: PlotNatrMarkerStatesSelectOptions;
}
/**
 * (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 PlotNatrMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotNatrAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotNatrAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotNatrConnectorsOptions;
    /**
     * (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 name for 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?: PlotNatrDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotNatrEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotNatrLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotNatrLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotNatrLastVisiblePriceOptions;
    /**
     * (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?: PlotNatrMarkerOptions;
    /**
     * (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.
     */
    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?: PlotNatrPointOptions;
    /**
     * (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?: PlotNatrStatesOptions;
    /**
     * (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.
     */
    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?: PlotNatrTooltipOptions;
    /**
     * (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.
     */
    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<PlotNatrZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotNatrPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotNatrPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotNatrPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotNatrStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotNatrStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotNatrStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotNatrStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotNatrStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotNatrStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotNatrStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotNatrStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotNatrStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotNatrStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotNatrStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotNatrStatesInactiveOptions;
    /**
     * (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?: PlotNatrStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotNatrStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotNatrStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotNatrStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotNatrStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotNatrStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotNatrStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotNatrTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotNatrTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotNatrTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotNatrZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotNetworkgraphAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotNetworkgraphAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotNetworkgraphAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotNetworkgraphConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotNetworkgraphConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotNetworkgraphConnectorsOptions {
    /**
     * (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?: PlotNetworkgraphConnectorsEndMarkerOptions;
    /**
     * (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?: PlotNetworkgraphConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotNetworkgraphConnectorsStartMarkerOptions;
    /**
     * (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 PlotNetworkgraphConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotNetworkgraphDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotNetworkgraphEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (Highstock) The line marks the last price from all points.
 */
export interface PlotNetworkgraphLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotNetworkgraphLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotNetworkgraphLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotNetworkgraphLastVisiblePriceLabelOptions;
}
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) 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.
 */
export interface PlotNetworkgraphMarkerOptions {
    /**
     * (Highcharts) 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) 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) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highcharts) States for a single point marker.
     */
    states?: PlotNetworkgraphMarkerStatesOptions;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts) The hover state for a single point marker.
 */
export interface PlotNetworkgraphMarkerStatesHoverOptions {
    /**
     * (Highcharts) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (Highcharts) 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) 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) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (Highcharts) 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) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
/**
 * (Highcharts) Animation when not hovering over the node.
 */
export interface PlotNetworkgraphMarkerStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for a single point node. Applied
 * to all not connected nodes to the hovered one.
 */
export interface PlotNetworkgraphMarkerStatesInactiveOptions {
    /**
     * (Highcharts) Animation when not hovering over the node.
     */
    animation?: (boolean|AnimationOptionsObject|PlotNetworkgraphMarkerStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highcharts) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotNetworkgraphMarkerStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts) States for a single point marker.
 */
export interface PlotNetworkgraphMarkerStatesOptions {
    /**
     * (Highcharts) The hover state for a single point marker.
     */
    hover?: PlotNetworkgraphMarkerStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for a single point node.
     * Applied to all not connected nodes to the hovered one.
     */
    inactive?: PlotNetworkgraphMarkerStatesInactiveOptions;
    /**
     * (Highcharts) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotNetworkgraphMarkerStatesNormalOptions;
    /**
     * (Highcharts) 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?: PlotNetworkgraphMarkerStatesSelectOptions;
}
/**
 * (Highcharts) 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 PlotNetworkgraphMarkerStatesSelectOptions {
    /**
     * (Highcharts) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highcharts) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotNetworkgraphAccessibilityOptions);
    /**
     * (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) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotNetworkgraphConnectorsOptions;
    /**
     * (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 name for 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?: PlotNetworkgraphDataGroupingOptions;
    /**
     * (Highcharts) 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) Requires the Accessibility module.
     *
     * 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?: PlotNetworkgraphEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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?: PlotNetworkgraphLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotNetworkgraphLastVisiblePriceOptions;
    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.
     */
    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?: PlotNetworkgraphMarkerOptions;
    /**
     * (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?: PlotNetworkgraphPointOptions;
    /**
     * (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?: PlotNetworkgraphStatesOptions;
    /**
     * (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.
     */
    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?: PlotNetworkgraphTooltipOptions;
    /**
     * (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.
     */
    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<PlotNetworkgraphZonesOptions>;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotNetworkgraphPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotNetworkgraphPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotNetworkgraphPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotNetworkgraphStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotNetworkgraphStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface PlotNetworkgraphStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotNetworkgraphStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts) 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?: (PlotNetworkgraphStatesHoverHaloOptions|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;
}
/**
 * (Highcharts) Animation when not hovering over the node.
 */
export interface PlotNetworkgraphStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for a single point link. Applied
 * to all links that are not comming from the hovered node.
 */
export interface PlotNetworkgraphStatesInactiveOptions {
    /**
     * (Highcharts) Animation when not hovering over the node.
     */
    animation?: (boolean|AnimationOptionsObject|PlotNetworkgraphStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of inactive links.
     */
    linkOpacity?: number;
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotNetworkgraphStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotNetworkgraphStatesOptions {
    /**
     * (Highcharts) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotNetworkgraphStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for a single point link.
     * Applied to all links that are not comming from the hovered node.
     */
    inactive?: PlotNetworkgraphStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotNetworkgraphStatesNormalOptions;
    /**
     * (Highcharts) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotNetworkgraphStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotNetworkgraphStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotNetworkgraphStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotNetworkgraphStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotNetworkgraphStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotNetworkgraphStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotNetworkgraphTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotNetworkgraphTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotNetworkgraphTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) 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 PlotNetworkgraphZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotOhlcAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotOhlcAccessibilityOptions {
    /**
     * (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?: (object|PlotOhlcAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotOhlcConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotOhlcConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotOhlcConnectorsOptions {
    /**
     * (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?: PlotOhlcConnectorsEndMarkerOptions;
    /**
     * (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?: PlotOhlcConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotOhlcConnectorsStartMarkerOptions;
    /**
     * (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 PlotOhlcConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotOhlcDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `5`.
     */
    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)]>;
}
/**
 * (Highstock) Options for the drag handles.
 */
export interface PlotOhlcDragDropDragHandleOptions {
    /**
     * (Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highstock) Style options for the guide box default state.
 */
export interface PlotOhlcDragDropGuideBoxDefaultOptions {
    /**
     * (Highstock) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotOhlcDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotOhlcDragDropOptions {
    /**
     * (Highstock) Allow close value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableClose?: boolean;
    /**
     * (Highstock) Allow high value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableHigh?: boolean;
    /**
     * (Highstock) Allow low value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableLow?: boolean;
    /**
     * (Highstock) Allow open value to be dragged individually. Requires
     * `draggable-points` module.
     */
    draggableOpen?: boolean;
    /**
     * (Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highstock) Enable dragging in the Y dimension. Note that this is not
     * supported for TreeGrid axes (the default axis type in Gantt charts).
     */
    draggableY?: boolean;
    /**
     * (Highstock) Options for the drag handles.
     */
    dragHandle?: PlotOhlcDragDropDragHandleOptions;
    /**
     * (Highstock) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highstock) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highstock) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highstock) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) Group the points by a property. Points with the same property
     * value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highstock) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotOhlcDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highstock) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotOhlcEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotOhlcLabelOptions {
    /**
     * (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) 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 PlotOhlcLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotOhlcLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotOhlcLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotOhlcLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotOhlcAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotOhlcAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    boostThreshold?: 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);
    /**
     * (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 (see online
     * documentation for example) 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?: PlotOhlcConnectorsOptions;
    /**
     * (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) 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?: PlotOhlcDataGroupingOptions;
    /**
     * (Highstock) 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?: any;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotOhlcDragDropOptions;
    /**
     * (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?: PlotOhlcEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    groupZPadding?: number;
    /**
     * (Highstock) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotOhlcLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotOhlcLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotOhlcLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotOhlcPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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?: PlotOhlcStatesOptions;
    /**
     * (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.
     */
    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?: any;
    /**
     * (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?: PlotOhlcTooltipOptions;
    /**
     * (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.
     */
    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<PlotOhlcZonesOptions>;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotOhlcPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotOhlcPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotOhlcPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotOhlcStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highstock) Options for the hovered point. These settings override the normal
 * state options when a point is moused over or touched.
 */
export interface PlotOhlcStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotOhlcStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    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 pixel width of the line representing the OHLC point.
     */
    lineWidth?: number;
}
/**
 * (Highstock) The animation for entering the inactive state.
 */
export interface PlotOhlcStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotOhlcStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotOhlcStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotOhlcStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotOhlcStatesOptions {
    /**
     * (Highstock) Options for the hovered point. These settings override the
     * normal state options when a point is moused over or touched.
     */
    hover?: PlotOhlcStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotOhlcStatesInactiveOptions;
    /**
     * (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?: PlotOhlcStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotOhlcStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotOhlcStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotOhlcStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotOhlcStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotOhlcTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotOhlcTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotOhlcTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (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) 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 PlotOhlcZonesOptions {
    /**
     * (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;
}
/**
 * (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. Requires `highcharts-more.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 `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.
     * Requires `highcharts-more.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 `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. Requires
     * `highcharts-more.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 `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. Requires `highcharts-more.js`. 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. Requires `highcharts-more.js`.
     * 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;
    /**
     * (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;
    /**
     * (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. Requires `highcharts-more.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 `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. Requires the `highcharts-more.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 `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. Requires the funnel module.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series 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.
     *
     * It requires that the `highcharts-3d.js`, `cylinder.js`, `funnel3d.js` and
     * `pyramid3d` modules 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 `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) 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`.
     *
     * Requires `https://code.highcharts.com/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. Requires
     * `highcharts-more.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 `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) Keyboard navigation for a series
 */
export interface PlotOrganizationAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotOrganizationAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotOrganizationAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotOrganizationConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotOrganizationConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotOrganizationConnectorsOptions {
    /**
     * (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?: PlotOrganizationConnectorsEndMarkerOptions;
    /**
     * (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?: PlotOrganizationConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotOrganizationConnectorsStartMarkerOptions;
    /**
     * (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 PlotOrganizationConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotOrganizationDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) 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 PlotOrganizationEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotOrganizationLabelOptions {
    /**
     * (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) 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 PlotOrganizationLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotOrganizationLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotOrganizationLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotOrganizationLastVisiblePriceLabelOptions;
}
/**
 * (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) Can set `dataLabels` on all points which lay on the same
     * level.
     */
    dataLabels?: 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?: PointStatesOptionsObject;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotOrganizationAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotOrganizationAnimationOptions);
    /**
     * (Highcharts) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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) 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 (see online
     * documentation for example) 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?: PlotOrganizationConnectorsOptions;
    /**
     * (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);
    /**
     * (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?: PlotOrganizationDataGroupingOptions;
    /**
     * (Highcharts) 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) Requires the Accessibility module.
     *
     * 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?: PlotOrganizationEventsOptions;
    /**
     * (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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotOrganizationLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotOrganizationLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotOrganizationLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotOrganizationPointOptions;
    /**
     * (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?: PlotOrganizationStatesOptions;
    /**
     * (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.
     */
    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?: PlotOrganizationTooltipOptions;
    /**
     * (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.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotOrganizationPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotOrganizationPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotOrganizationPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotOrganizationStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotOrganizationStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotOrganizationStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Opacity for the links between nodes in the
     * sankey diagram in hover mode.
     */
    linkOpacity?: number;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotOrganizationStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for a single point node/link.
 */
export interface PlotOrganizationStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: PlotOrganizationStatesInactiveAnimationOptions;
    /**
     * (Highcharts) Opacity for the links between nodes in the sankey diagram in
     * inactive mode.
     */
    linkOpacity?: number;
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotOrganizationStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotOrganizationStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotOrganizationStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for a single point node/link.
     */
    inactive?: PlotOrganizationStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotOrganizationStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotOrganizationStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotOrganizationStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotOrganizationStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotOrganizationStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotOrganizationTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotOrganizationTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotOrganizationTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts) Whether the tooltip should follow the pointer or stay fixed
     * on the item.
     */
    followPointer?: boolean;
    /**
     * (Highcharts) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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>;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) Keyboard navigation for a series
 */
export interface PlotPackedbubbleAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotPackedbubbleAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotPackedbubbleAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotPackedbubbleConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotPackedbubbleConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotPackedbubbleConnectorsOptions {
    /**
     * (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?: PlotPackedbubbleConnectorsEndMarkerOptions;
    /**
     * (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?: PlotPackedbubbleConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotPackedbubbleConnectorsStartMarkerOptions;
    /**
     * (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 PlotPackedbubbleConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotPackedbubbleDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotPackedbubbleEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotPackedbubbleLabelOptions {
    /**
     * (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) 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 PlotPackedbubbleLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotPackedbubbleLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotPackedbubbleLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotPackedbubbleLastVisiblePriceLabelOptions;
}
/**
 * (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) Styling options for parentNodes markers. Similar to line.marker
 * options.
 */
export interface PlotPackedbubbleLayoutAlgorithmParentNodeMarkerOptions {
    /**
     * (Highcharts) 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) 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) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: any;
    fillOpacity?: number;
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: any;
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (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?: PlotPackedbubbleLayoutAlgorithmParentNodeMarkerOptions;
    /**
     * (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) 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.
 */
export interface PlotPackedbubbleMarkerOptions {
    /**
     * (Highcharts) 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) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: any;
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) States for a single point marker.
     */
    states?: PlotPackedbubbleMarkerStatesOptions;
    /**
     * (Highcharts) A predefined shape or symbol for the marker. Possible values
     * are "circle", "square", "diamond", "triangle" and "triangle-down".
     *
     * Additionally, the URL to a graphic can be given on the 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) The hover state for a single point marker.
 */
export interface PlotPackedbubbleMarkerStatesHoverOptions {
    /**
     * (Highcharts) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (Highcharts) 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) 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) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (Highcharts) 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) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotPackedbubbleMarkerStatesInactiveOptions {
    /**
     * (Highcharts) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highcharts) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotPackedbubbleMarkerStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts) States for a single point marker.
 */
export interface PlotPackedbubbleMarkerStatesOptions {
    /**
     * (Highcharts) The hover state for a single point marker.
     */
    hover?: PlotPackedbubbleMarkerStatesHoverOptions;
    inactive?: PlotPackedbubbleMarkerStatesInactiveOptions;
    /**
     * (Highcharts) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotPackedbubbleMarkerStatesNormalOptions;
    /**
     * (Highcharts) 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?: PlotPackedbubbleMarkerStatesSelectOptions;
}
/**
 * (Highcharts) 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 PlotPackedbubbleMarkerStatesSelectOptions {
    /**
     * (Highcharts) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highcharts) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires `highcharts-more.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 `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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotPackedbubbleAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotPackedbubbleAnimationOptions);
    /**
     * (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;
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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) 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 (see online
     * documentation for example) 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?: PlotPackedbubbleConnectorsOptions;
    /**
     * (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 name for 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?: PlotPackedbubbleDataGroupingOptions;
    /**
     * (Highcharts) 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) Requires the Accessibility module.
     *
     * 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?: PlotPackedbubbleEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotPackedbubbleLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotPackedbubbleLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotPackedbubbleLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotPackedbubbleMarkerOptions;
    /**
     * (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) Properties for each single point.
     */
    point?: PlotPackedbubblePointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotPackedbubbleStatesOptions;
    /**
     * (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?: PlotPackedbubbleTooltipOptions;
    /**
     * (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.
     */
    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<PlotPackedbubbleZonesOptions>;
    /**
     * (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) Events for each single point.
 */
export interface PlotPackedbubblePointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotPackedbubblePointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotPackedbubblePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPackedbubbleStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPackedbubbleStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface PlotPackedbubbleStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPackedbubbleStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts) 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?: PlotPackedbubbleStatesHoverHaloOptions;
    /**
     * (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) The animation for entering the inactive state.
 */
export interface PlotPackedbubbleStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotPackedbubbleStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPackedbubbleStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotPackedbubbleStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotPackedbubbleStatesOptions {
    /**
     * (Highcharts) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotPackedbubbleStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotPackedbubbleStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotPackedbubbleStatesNormalOptions;
    /**
     * (Highcharts) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotPackedbubbleStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPackedbubbleStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPackedbubbleStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotPackedbubbleStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotPackedbubbleStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotPackedbubbleStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotPackedbubbleTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotPackedbubbleTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotPackedbubbleTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotPackedbubbleZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotParetoAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotParetoAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotParetoAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotParetoConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotParetoConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotParetoConnectorsOptions {
    /**
     * (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?: PlotParetoConnectorsEndMarkerOptions;
    /**
     * (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?: PlotParetoConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotParetoConnectorsStartMarkerOptions;
    /**
     * (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 PlotParetoConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotParetoDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotParetoEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotParetoLabelOptions {
    /**
     * (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) 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 PlotParetoLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotParetoLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotParetoLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotParetoLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotParetoMarkerOptions {
    /**
     * (Highcharts) 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) 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) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highcharts) States for a single point marker.
     */
    states?: PlotParetoMarkerStatesOptions;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts) The hover state for a single point marker.
 */
export interface PlotParetoMarkerStatesHoverOptions {
    /**
     * (Highcharts) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (Highcharts) 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) 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) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (Highcharts) 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) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotParetoMarkerStatesInactiveOptions {
    /**
     * (Highcharts) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highcharts) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotParetoMarkerStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts) States for a single point marker.
 */
export interface PlotParetoMarkerStatesOptions {
    /**
     * (Highcharts) The hover state for a single point marker.
     */
    hover?: PlotParetoMarkerStatesHoverOptions;
    inactive?: PlotParetoMarkerStatesInactiveOptions;
    /**
     * (Highcharts) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotParetoMarkerStatesNormalOptions;
    /**
     * (Highcharts) 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?: PlotParetoMarkerStatesSelectOptions;
}
/**
 * (Highcharts) 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 PlotParetoMarkerStatesSelectOptions {
    /**
     * (Highcharts) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highcharts) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotParetoAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotParetoAnimationOptions);
    /**
     * (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) 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 (see online
     * documentation for example) 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?: PlotParetoConnectorsOptions;
    /**
     * (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 name for 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?: PlotParetoDataGroupingOptions;
    /**
     * (Highcharts) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotParetoEventsOptions;
    /**
     * (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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotParetoLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotParetoLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotParetoLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotParetoMarkerOptions;
    /**
     * (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?: PlotParetoPointOptions;
    /**
     * (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?: PlotParetoStatesOptions;
    /**
     * (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.
     */
    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?: PlotParetoTooltipOptions;
    /**
     * (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.
     */
    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;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotParetoPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotParetoPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotParetoPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotParetoStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotParetoStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface PlotParetoStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotParetoStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts) 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?: (PlotParetoStatesHoverHaloOptions|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;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotParetoStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotParetoStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotParetoStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotParetoStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotParetoStatesOptions {
    /**
     * (Highcharts) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotParetoStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotParetoStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotParetoStatesNormalOptions;
    /**
     * (Highcharts) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotParetoStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotParetoStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotParetoStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotParetoStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotParetoStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotParetoStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotParetoTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotParetoTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotParetoTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotPcAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotPcAccessibilityOptions {
    /**
     * (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?: (object|PlotPcAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: 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;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotPcConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotPcConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotPcConnectorsOptions {
    /**
     * (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?: PlotPcConnectorsEndMarkerOptions;
    /**
     * (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?: PlotPcConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotPcConnectorsStartMarkerOptions;
    /**
     * (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 PlotPcConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotPcDataGroupingOptions {
    /**
     * (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;
    /**
     * (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)]>;
}
/**
 * (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 PlotPcEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotPcLabelOptions {
    /**
     * (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) 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 PlotPcLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotPcLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotPcLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotPcLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotPcMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotPcMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotPcMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotPcMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotPcMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotPcMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotPcMarkerStatesHoverOptions;
    inactive?: PlotPcMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotPcMarkerStatesNormalOptions;
    /**
     * (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?: PlotPcMarkerStatesSelectOptions;
}
/**
 * (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 PlotPcMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotPcAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotPcAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotPcConnectorsOptions;
    /**
     * (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 name for 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?: PlotPcDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotPcEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotPcLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotPcLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotPcLastVisiblePriceOptions;
    /**
     * (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?: PlotPcMarkerOptions;
    /**
     * (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.
     */
    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?: PlotPcPointOptions;
    /**
     * (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?: PlotPcStatesOptions;
    /**
     * (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.
     */
    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?: PlotPcTooltipOptions;
    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.
     */
    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<PlotPcZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotPcPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotPcPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotPcPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPcStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPcStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotPcStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPcStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotPcStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotPcStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotPcStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPcStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotPcStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotPcStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotPcStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotPcStatesInactiveOptions;
    /**
     * (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?: PlotPcStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotPcStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPcStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPcStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotPcStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotPcStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotPcStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotPcTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotPcTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotPcTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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;
}
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, 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 PlotPcZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotPieAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotPieAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotPieAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotPieConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotPieConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotPieConnectorsOptions {
    /**
     * (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?: PlotPieConnectorsEndMarkerOptions;
    /**
     * (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?: PlotPieConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotPieConnectorsStartMarkerOptions;
    /**
     * (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 PlotPieConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotPieDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotPieEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) Fires when the checkbox next to the point 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (Highstock) The line marks the last price from all points.
 */
export interface PlotPieLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotPieLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotPieLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotPieLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotPieAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotPieAnimationOptions);
    /**
     * (Highcharts) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotPieConnectorsOptions;
    /**
     * (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);
    /**
     * (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?: PlotPieDataGroupingOptions;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) The thickness of a 3D pie. Requires `highcharts-3d.js`
     */
    depth?: number;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotPieEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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?: PlotPieLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotPieLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotPiePointOptions;
    /**
     * (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?: PlotPieStatesOptions;
    /**
     * (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?: PlotPieTooltipOptions;
    /**
     * (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) Events for each single point.
 */
export interface PlotPiePointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    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) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotPiePointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotPiePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPieStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPieStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface PlotPieStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPieStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts) How much to brighten the point on interaction. Requires the
     * main color to be defined in hex or rgb(a) format.
     *
     * In styled mode, the hover brightness is by default replaced by a
     * fill-opacity given in the `.highcharts-point-hover` class.
     */
    brightness?: number;
    /**
     * (Highmaps) The color of the shape in this state.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotPieStatesHoverHaloOptions|null);
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotPieStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotPieStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPieStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotPieStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotPieStatesOptions {
    /**
     * (Highcharts) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotPieStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotPieStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotPieStatesNormalOptions;
    /**
     * (Highcharts) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotPieStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPieStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPieStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotPieStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotPieStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotPieStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotPieTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotPieTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotPieTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotPivotpointsAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotPivotpointsAccessibilityOptions {
    /**
     * (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?: (object|PlotPivotpointsAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotPivotpointsConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotPivotpointsConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotPivotpointsConnectorsOptions {
    /**
     * (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?: PlotPivotpointsConnectorsEndMarkerOptions;
    /**
     * (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?: PlotPivotpointsConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotPivotpointsConnectorsStartMarkerOptions;
    /**
     * (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 PlotPivotpointsConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotPivotpointsDataGroupingOptions {
    /**
     * (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;
    /**
     * (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)]>;
}
/**
 * (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 PlotPivotpointsEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotPivotpointsLabelOptions {
    /**
     * (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) 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 PlotPivotpointsLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotPivotpointsLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotPivotpointsLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotPivotpointsLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotPivotpointsMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotPivotpointsMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotPivotpointsMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotPivotpointsMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotPivotpointsMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotPivotpointsMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotPivotpointsMarkerStatesHoverOptions;
    inactive?: PlotPivotpointsMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotPivotpointsMarkerStatesNormalOptions;
    /**
     * (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?: PlotPivotpointsMarkerStatesSelectOptions;
}
/**
 * (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 PlotPivotpointsMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotPivotpointsAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotPivotpointsAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotPivotpointsConnectorsOptions;
    /**
     * (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 name for 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?: PlotPivotpointsDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotPivotpointsEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotPivotpointsLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotPivotpointsLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotPivotpointsLastVisiblePriceOptions;
    /**
     * (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?: PlotPivotpointsMarkerOptions;
    /**
     * (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.
     */
    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?: PlotPivotpointsPointOptions;
    /**
     * (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?: PlotPivotpointsStatesOptions;
    /**
     * (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.
     */
    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?: PlotPivotpointsTooltipOptions;
    /**
     * (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.
     */
    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<PlotPivotpointsZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotPivotpointsPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotPivotpointsPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotPivotpointsPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPivotpointsStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPivotpointsStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotPivotpointsStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPivotpointsStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotPivotpointsStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotPivotpointsStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotPivotpointsStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPivotpointsStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotPivotpointsStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotPivotpointsStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotPivotpointsStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotPivotpointsStatesInactiveOptions;
    /**
     * (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?: PlotPivotpointsStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotPivotpointsStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPivotpointsStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPivotpointsStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotPivotpointsStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotPivotpointsStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotPivotpointsStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotPivotpointsTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotPivotpointsTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotPivotpointsTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotPivotpointsZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotPolygonAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotPolygonAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotPolygonAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotPolygonConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotPolygonConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotPolygonConnectorsOptions {
    /**
     * (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?: PlotPolygonConnectorsEndMarkerOptions;
    /**
     * (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?: PlotPolygonConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotPolygonConnectorsStartMarkerOptions;
    /**
     * (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 PlotPolygonConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotPolygonDataGroupingOptions {
    /**
     * (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?: (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) Options for the drag handles.
 */
export interface PlotPolygonDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotPolygonDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotPolygonDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotPolygonDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotPolygonDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotPolygonDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotPolygonEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotPolygonLabelOptions {
    /**
     * (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) 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 PlotPolygonLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotPolygonLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotPolygonLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotPolygonLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotPolygonMarkerOptions {
    /**
     * (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, 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?: (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?: PlotPolygonMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface PlotPolygonMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface PlotPolygonMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 PlotPolygonMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface PlotPolygonMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: PlotPolygonMarkerStatesHoverOptions;
    inactive?: PlotPolygonMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: PlotPolygonMarkerStatesNormalOptions;
    /**
     * (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?: PlotPolygonMarkerStatesSelectOptions;
}
/**
 * (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 PlotPolygonMarkerStatesSelectOptions {
    /**
     * (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, 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, 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.
 * Requires the `highcharts-more.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 `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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotPolygonAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotPolygonAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotPolygonConnectorsOptions;
    /**
     * (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 name for 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?: PlotPolygonDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotPolygonDragDropOptions;
    /**
     * (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?: PlotPolygonEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotPolygonLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotPolygonLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotPolygonLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotPolygonMarkerOptions;
    /**
     * (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.
     */
    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?: PlotPolygonPointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotPolygonStatesOptions;
    /**
     * (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?: PlotPolygonTooltipOptions;
    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.
     */
    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<PlotPolygonZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotPolygonPointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotPolygonPointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotPolygonPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPolygonStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPolygonStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Options for the hovered series. These settings
 * override the normal state options when a series is moused over or touched.
 */
export interface PlotPolygonStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPolygonStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts, 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?: (PlotPolygonStatesHoverHaloOptions|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;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotPolygonStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotPolygonStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPolygonStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotPolygonStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotPolygonStatesOptions {
    /**
     * (Highcharts, Highstock) Options for the hovered series. These settings
     * override the normal state options when a series is moused over or
     * touched.
     */
    hover?: PlotPolygonStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotPolygonStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotPolygonStatesNormalOptions;
    /**
     * (Highcharts, Highstock) Specific options for point in selected states,
     * after being selected by allowPointSelect or programmatically.
     */
    select?: PlotPolygonStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPolygonStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPolygonStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Specific options for point in selected states, after
 * being selected by allowPointSelect or programmatically.
 */
export interface PlotPolygonStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotPolygonStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, 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?: (PlotPolygonStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotPolygonTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotPolygonTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotPolygonTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotPolygonZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotPpoAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotPpoAccessibilityOptions {
    /**
     * (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?: (object|PlotPpoAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotPpoConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotPpoConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotPpoConnectorsOptions {
    /**
     * (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?: PlotPpoConnectorsEndMarkerOptions;
    /**
     * (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?: PlotPpoConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotPpoConnectorsStartMarkerOptions;
    /**
     * (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 PlotPpoConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotPpoDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotPpoEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotPpoLabelOptions {
    /**
     * (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) 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 PlotPpoLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotPpoLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotPpoLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotPpoLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotPpoMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotPpoMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotPpoMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotPpoMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotPpoMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotPpoMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotPpoMarkerStatesHoverOptions;
    inactive?: PlotPpoMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotPpoMarkerStatesNormalOptions;
    /**
     * (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?: PlotPpoMarkerStatesSelectOptions;
}
/**
 * (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 PlotPpoMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotPpoAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotPpoAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotPpoConnectorsOptions;
    /**
     * (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 name for 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?: PlotPpoDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotPpoEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotPpoLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotPpoLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotPpoLastVisiblePriceOptions;
    /**
     * (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?: PlotPpoMarkerOptions;
    /**
     * (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.
     */
    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?: PlotPpoPointOptions;
    /**
     * (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?: PlotPpoStatesOptions;
    /**
     * (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.
     */
    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?: PlotPpoTooltipOptions;
    /**
     * (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.
     */
    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<PlotPpoZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotPpoPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotPpoPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotPpoPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPpoStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPpoStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotPpoStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPpoStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotPpoStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotPpoStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotPpoStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPpoStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotPpoStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotPpoStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotPpoStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotPpoStatesInactiveOptions;
    /**
     * (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?: PlotPpoStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotPpoStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPpoStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPpoStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotPpoStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotPpoStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotPpoStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotPpoTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotPpoTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotPpoTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotPpoZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotPriceenvelopesAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotPriceenvelopesAccessibilityOptions {
    /**
     * (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?: (object|PlotPriceenvelopesAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: 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;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotPriceenvelopesConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotPriceenvelopesConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotPriceenvelopesConnectorsOptions {
    /**
     * (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?: PlotPriceenvelopesConnectorsEndMarkerOptions;
    /**
     * (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?: PlotPriceenvelopesConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotPriceenvelopesConnectorsStartMarkerOptions;
    /**
     * (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 PlotPriceenvelopesConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotPriceenvelopesDataGroupingOptions {
    /**
     * (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;
    /**
     * (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)]>;
}
/**
 * (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 PlotPriceenvelopesEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotPriceenvelopesLabelOptions {
    /**
     * (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) 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 PlotPriceenvelopesLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotPriceenvelopesLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotPriceenvelopesLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotPriceenvelopesLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotPriceenvelopesMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotPriceenvelopesMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotPriceenvelopesMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotPriceenvelopesMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotPriceenvelopesMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotPriceenvelopesMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotPriceenvelopesMarkerStatesHoverOptions;
    inactive?: PlotPriceenvelopesMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotPriceenvelopesMarkerStatesNormalOptions;
    /**
     * (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?: PlotPriceenvelopesMarkerStatesSelectOptions;
}
/**
 * (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 PlotPriceenvelopesMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotPriceenvelopesAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotPriceenvelopesAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotPriceenvelopesConnectorsOptions;
    /**
     * (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 name for 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?: PlotPriceenvelopesDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotPriceenvelopesEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotPriceenvelopesLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotPriceenvelopesLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotPriceenvelopesLastVisiblePriceOptions;
    /**
     * (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?: PlotPriceenvelopesMarkerOptions;
    /**
     * (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.
     */
    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?: PlotPriceenvelopesPointOptions;
    /**
     * (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?: PlotPriceenvelopesStatesOptions;
    /**
     * (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.
     */
    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?: PlotPriceenvelopesTooltipOptions;
    /**
     * (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.
     */
    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<PlotPriceenvelopesZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotPriceenvelopesPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotPriceenvelopesPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotPriceenvelopesPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPriceenvelopesStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPriceenvelopesStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotPriceenvelopesStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPriceenvelopesStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotPriceenvelopesStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotPriceenvelopesStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotPriceenvelopesStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPriceenvelopesStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotPriceenvelopesStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotPriceenvelopesStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotPriceenvelopesStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotPriceenvelopesStatesInactiveOptions;
    /**
     * (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?: PlotPriceenvelopesStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotPriceenvelopesStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPriceenvelopesStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPriceenvelopesStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotPriceenvelopesStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotPriceenvelopesStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotPriceenvelopesStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotPriceenvelopesTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotPriceenvelopesTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotPriceenvelopesTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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;
}
/**
 * (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;
}
/**
 * (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 PlotPriceenvelopesZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotPsarAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotPsarAccessibilityOptions {
    /**
     * (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?: (object|PlotPsarAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotPsarConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotPsarConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotPsarConnectorsOptions {
    /**
     * (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?: PlotPsarConnectorsEndMarkerOptions;
    /**
     * (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?: PlotPsarConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotPsarConnectorsStartMarkerOptions;
    /**
     * (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 PlotPsarConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotPsarDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotPsarEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotPsarLabelOptions {
    /**
     * (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) 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 PlotPsarLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotPsarLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotPsarLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotPsarLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotPsarMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotPsarMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotPsarMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotPsarMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotPsarMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotPsarMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotPsarMarkerStatesHoverOptions;
    inactive?: PlotPsarMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotPsarMarkerStatesNormalOptions;
    /**
     * (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?: PlotPsarMarkerStatesSelectOptions;
}
/**
 * (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 PlotPsarMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotPsarAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotPsarAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotPsarConnectorsOptions;
    /**
     * (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 name for 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?: PlotPsarDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotPsarEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotPsarLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotPsarLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotPsarLastVisiblePriceOptions;
    /**
     * (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?: PlotPsarMarkerOptions;
    /**
     * (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.
     */
    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?: PlotPsarPointOptions;
    /**
     * (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?: PlotPsarStatesOptions;
    /**
     * (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.
     */
    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?: PlotPsarTooltipOptions;
    /**
     * (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.
     */
    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<PlotPsarZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotPsarPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotPsarPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotPsarPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPsarStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPsarStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotPsarStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPsarStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotPsarStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotPsarStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotPsarStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPsarStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotPsarStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotPsarStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotPsarStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotPsarStatesInactiveOptions;
    /**
     * (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?: PlotPsarStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotPsarStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPsarStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotPsarStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotPsarStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotPsarStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotPsarStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotPsarTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotPsarTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotPsarTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotPsarZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotPyramid3dAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotPyramid3dAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotPyramid3dAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotPyramid3dConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotPyramid3dConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotPyramid3dConnectorsOptions {
    /**
     * (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?: PlotPyramid3dConnectorsEndMarkerOptions;
    /**
     * (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?: PlotPyramid3dConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotPyramid3dConnectorsStartMarkerOptions;
    /**
     * (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 PlotPyramid3dConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotPyramid3dDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) 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 {
    verticalAlign?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface PlotPyramid3dDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface PlotPyramid3dDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: PlotPyramid3dDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotPyramid3dDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: PlotPyramid3dDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotPyramid3dDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotPyramid3dEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotPyramid3dLabelOptions {
    /**
     * (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) 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 PlotPyramid3dLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotPyramid3dLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotPyramid3dLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotPyramid3dLastVisiblePriceLabelOptions;
}
/**
 * (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.
 *
 * It requires that the `highcharts-3d.js`, `cylinder.js`, `funnel3d.js` and
 * `pyramid3d` modules 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 `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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotPyramid3dAccessibilityOptions);
    /**
     * (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:
     *
     * - `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) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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) 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 (see online
     * documentation for example) 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?: PlotPyramid3dConnectorsOptions;
    /**
     * (Highcharts, Highstock, Gantt) When true, each 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);
    /**
     * (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?: PlotPyramid3dDataGroupingOptions;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotPyramid3dDragDropOptions;
    /**
     * (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?: PlotPyramid3dEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotPyramid3dLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotPyramid3dLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotPyramid3dLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotPyramid3dPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotPyramid3dStatesOptions;
    /**
     * (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.
     */
    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;
    /**
     * (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?: PlotPyramid3dTooltipOptions;
    /**
     * (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.
     */
    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<PlotPyramid3dZonesOptions>;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotPyramid3dPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotPyramid3dPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotPyramid3dPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPyramid3dStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotPyramid3dStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPyramid3dStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotPyramid3dStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotPyramid3dStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPyramid3dStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotPyramid3dStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotPyramid3dStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotPyramid3dStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotPyramid3dStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotPyramid3dStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotPyramid3dStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPyramid3dStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotPyramid3dStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotPyramid3dStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotPyramid3dTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotPyramid3dTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotPyramid3dTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) 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 PlotPyramid3dZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotPyramidAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotPyramidAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotPyramidAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (Highcharts) Initial animation is by default disabled for the funnel chart.
 */
export interface PlotPyramidAnimationOptions {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotPyramidConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotPyramidConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotPyramidConnectorsOptions {
    /**
     * (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?: PlotPyramidConnectorsEndMarkerOptions;
    /**
     * (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?: PlotPyramidConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotPyramidConnectorsStartMarkerOptions;
    /**
     * (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 PlotPyramidConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotPyramidDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotPyramidEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) Fires when the checkbox next to the point 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (Highstock) The line marks the last price from all points.
 */
export interface PlotPyramidLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotPyramidLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotPyramidLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotPyramidLastVisiblePriceLabelOptions;
}
/**
 * (Highcharts) A pyramid series is a special type of funnel, without neck and
 * reversed by default. Requires the funnel module.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotPyramidAccessibilityOptions);
    /**
     * (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) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotPyramidConnectorsOptions;
    /**
     * (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);
    /**
     * (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?: PlotPyramidDataGroupingOptions;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) The thickness of a 3D pie. Requires `highcharts-3d.js`
     */
    depth?: number;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotPyramidEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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?: PlotPyramidLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotPyramidLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotPyramidPointOptions;
    /**
     * (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?: PlotPyramidStatesOptions;
    /**
     * (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?: PlotPyramidTooltipOptions;
    /**
     * (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;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotPyramidPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    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) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotPyramidPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotPyramidPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPyramidStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface PlotPyramidStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPyramidStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts) How much to brighten the point on interaction. Requires the
     * main color to be defined in hex or rgb(a) format.
     *
     * In styled mode, the hover brightness is by default replaced by a
     * fill-opacity given in the `.highcharts-point-hover` class.
     */
    brightness?: number;
    /**
     * (Highmaps) The color of the shape in this state.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Enable separate styles for the hovered series to visualize
     * that the user hovers either the series itself or the legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotPyramidStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotPyramidStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotPyramidStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotPyramidStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts) Options for the series states.
 */
export interface PlotPyramidStatesOptions {
    /**
     * (Highcharts) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotPyramidStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotPyramidStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotPyramidStatesNormalOptions;
    /**
     * (Highcharts) Options for a selected funnel item.
     */
    select?: PlotPyramidStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotPyramidStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts) Options for a selected funnel item.
 */
export interface PlotPyramidStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotPyramidStatesSelectAnimationOptions;
    /**
     * (Highmaps) A specific border color for the selected point.
     */
    borderColor?: ColorString;
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highmaps) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Enable separate styles for the hovered series to visualize
     * that the user hovers either the series itself or the legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotPyramidTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotPyramidTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotPyramidTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotRocAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotRocAccessibilityOptions {
    /**
     * (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?: (object|PlotRocAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotRocConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotRocConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotRocConnectorsOptions {
    /**
     * (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?: PlotRocConnectorsEndMarkerOptions;
    /**
     * (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?: PlotRocConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotRocConnectorsStartMarkerOptions;
    /**
     * (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 PlotRocConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotRocDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotRocEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotRocLabelOptions {
    /**
     * (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) 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 PlotRocLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotRocLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotRocLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotRocLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotRocMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotRocMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotRocMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotRocMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotRocMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotRocMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotRocMarkerStatesHoverOptions;
    inactive?: PlotRocMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotRocMarkerStatesNormalOptions;
    /**
     * (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?: PlotRocMarkerStatesSelectOptions;
}
/**
 * (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 PlotRocMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotRocAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotRocAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotRocConnectorsOptions;
    /**
     * (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 name for 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?: PlotRocDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotRocEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotRocLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotRocLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotRocLastVisiblePriceOptions;
    /**
     * (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?: PlotRocMarkerOptions;
    /**
     * (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.
     */
    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?: PlotRocPointOptions;
    /**
     * (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?: PlotRocStatesOptions;
    /**
     * (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.
     */
    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?: PlotRocTooltipOptions;
    /**
     * (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.
     */
    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<PlotRocZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotRocPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotRocPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotRocPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotRocStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotRocStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotRocStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotRocStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotRocStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotRocStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotRocStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotRocStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotRocStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotRocStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotRocStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotRocStatesInactiveOptions;
    /**
     * (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?: PlotRocStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotRocStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotRocStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotRocStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotRocStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotRocStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotRocStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotRocTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotRocTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotRocTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotRocZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotRsiAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotRsiAccessibilityOptions {
    /**
     * (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?: (object|PlotRsiAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotRsiConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotRsiConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotRsiConnectorsOptions {
    /**
     * (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?: PlotRsiConnectorsEndMarkerOptions;
    /**
     * (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?: PlotRsiConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotRsiConnectorsStartMarkerOptions;
    /**
     * (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 PlotRsiConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotRsiDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotRsiEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotRsiLabelOptions {
    /**
     * (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) 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 PlotRsiLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotRsiLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotRsiLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotRsiLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotRsiMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotRsiMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotRsiMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotRsiMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotRsiMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotRsiMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotRsiMarkerStatesHoverOptions;
    inactive?: PlotRsiMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotRsiMarkerStatesNormalOptions;
    /**
     * (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?: PlotRsiMarkerStatesSelectOptions;
}
/**
 * (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 PlotRsiMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotRsiAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotRsiAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotRsiConnectorsOptions;
    /**
     * (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 name for 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?: PlotRsiDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotRsiEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotRsiLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotRsiLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotRsiLastVisiblePriceOptions;
    /**
     * (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?: PlotRsiMarkerOptions;
    /**
     * (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.
     */
    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?: PlotRsiPointOptions;
    /**
     * (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?: PlotRsiStatesOptions;
    /**
     * (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.
     */
    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?: PlotRsiTooltipOptions;
    /**
     * (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.
     */
    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<PlotRsiZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotRsiPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotRsiPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotRsiPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotRsiStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotRsiStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotRsiStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotRsiStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotRsiStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotRsiStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotRsiStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotRsiStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotRsiStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotRsiStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotRsiStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotRsiStatesInactiveOptions;
    /**
     * (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?: PlotRsiStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotRsiStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotRsiStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotRsiStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotRsiStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotRsiStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotRsiStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotRsiTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotRsiTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotRsiTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotRsiZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotSankeyAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotSankeyAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotSankeyAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotSankeyConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotSankeyConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotSankeyConnectorsOptions {
    /**
     * (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?: PlotSankeyConnectorsEndMarkerOptions;
    /**
     * (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?: PlotSankeyConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotSankeyConnectorsStartMarkerOptions;
    /**
     * (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 PlotSankeyConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotSankeyDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) 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 PlotSankeyEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotSankeyLabelOptions {
    /**
     * (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) 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 PlotSankeyLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotSankeyLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotSankeyLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotSankeyLastVisiblePriceLabelOptions;
}
/**
 * (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) Can set `dataLabels` on all points which lay on the same
     * level.
     */
    dataLabels?: 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?: PointStatesOptionsObject;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotSankeyAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotSankeyAnimationOptions);
    /**
     * (Highcharts) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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) 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 (see online
     * documentation for example) 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?: PlotSankeyConnectorsOptions;
    /**
     * (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;
    /**
     * (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?: PlotSankeyDataGroupingOptions;
    /**
     * (Highcharts) 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) Requires the Accessibility module.
     *
     * 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?: PlotSankeyEventsOptions;
    /**
     * (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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotSankeyLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotSankeyLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotSankeyLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotSankeyPointOptions;
    /**
     * (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?: PlotSankeyStatesOptions;
    /**
     * (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.
     */
    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?: PlotSankeyTooltipOptions;
    /**
     * (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.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotSankeyPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotSankeyPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotSankeyPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotSankeyStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotSankeyStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotSankeyStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Opacity for the links between nodes in the
     * sankey diagram in hover mode.
     */
    linkOpacity?: number;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotSankeyStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for a single point node/link.
 */
export interface PlotSankeyStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: PlotSankeyStatesInactiveAnimationOptions;
    /**
     * (Highcharts) Opacity for the links between nodes in the sankey diagram in
     * inactive mode.
     */
    linkOpacity?: number;
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotSankeyStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotSankeyStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotSankeyStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for a single point node/link.
     */
    inactive?: PlotSankeyStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotSankeyStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotSankeyStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotSankeyStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotSankeyStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotSankeyStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotSankeyTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotSankeyTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotSankeyTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts) Whether the tooltip should follow the pointer or stay fixed
     * on the item.
     */
    followPointer?: boolean;
    /**
     * (Highcharts) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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>;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) Keyboard navigation for a series
 */
export interface PlotScatter3dAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotScatter3dAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotScatter3dAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotScatter3dConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotScatter3dConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotScatter3dConnectorsOptions {
    /**
     * (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?: PlotScatter3dConnectorsEndMarkerOptions;
    /**
     * (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?: PlotScatter3dConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotScatter3dConnectorsStartMarkerOptions;
    /**
     * (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 PlotScatter3dConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotScatter3dDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotScatter3dEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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, 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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotScatter3dLabelOptions {
    /**
     * (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) 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 PlotScatter3dLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotScatter3dLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotScatter3dLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotScatter3dLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotScatter3dMarkerOptions {
    /**
     * (Highcharts) 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) 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) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highcharts) States for a single point marker.
     */
    states?: PlotScatter3dMarkerStatesOptions;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts) The hover state for a single point marker.
 */
export interface PlotScatter3dMarkerStatesHoverOptions {
    /**
     * (Highcharts) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (Highcharts) 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) 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) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (Highcharts) 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) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotScatter3dMarkerStatesInactiveOptions {
    /**
     * (Highcharts) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highcharts) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotScatter3dMarkerStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts) States for a single point marker.
 */
export interface PlotScatter3dMarkerStatesOptions {
    /**
     * (Highcharts) The hover state for a single point marker.
     */
    hover?: PlotScatter3dMarkerStatesHoverOptions;
    inactive?: PlotScatter3dMarkerStatesInactiveOptions;
    /**
     * (Highcharts) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotScatter3dMarkerStatesNormalOptions;
    /**
     * (Highcharts) 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?: PlotScatter3dMarkerStatesSelectOptions;
}
/**
 * (Highcharts) 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 PlotScatter3dMarkerStatesSelectOptions {
    /**
     * (Highcharts) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highcharts) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotScatter3dAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotScatter3dAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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) 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 (see online
     * documentation for example) 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?: PlotScatter3dConnectorsOptions;
    /**
     * (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 name for 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?: PlotScatter3dDataGroupingOptions;
    /**
     * (Highcharts) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotScatter3dEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotScatter3dLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotScatter3dLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotScatter3dLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotScatter3dMarkerOptions;
    /**
     * (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.
     */
    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?: PlotScatter3dPointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotScatter3dStatesOptions;
    /**
     * (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?: PlotScatter3dTooltipOptions;
    /**
     * (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.
     */
    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<PlotScatter3dZonesOptions>;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotScatter3dPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotScatter3dPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotScatter3dPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotScatter3dStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotScatter3dStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface PlotScatter3dStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotScatter3dStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts) 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?: (PlotScatter3dStatesHoverHaloOptions|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;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotScatter3dStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotScatter3dStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotScatter3dStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotScatter3dStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotScatter3dStatesOptions {
    /**
     * (Highcharts) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotScatter3dStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotScatter3dStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotScatter3dStatesNormalOptions;
    /**
     * (Highcharts) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotScatter3dStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotScatter3dStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotScatter3dStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotScatter3dStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotScatter3dStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotScatter3dStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotScatter3dTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotScatter3dTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotScatter3dTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotScatter3dZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotScatterAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotScatterAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotScatterAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotScatterConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotScatterConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotScatterConnectorsOptions {
    /**
     * (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?: PlotScatterConnectorsEndMarkerOptions;
    /**
     * (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?: PlotScatterConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotScatterConnectorsStartMarkerOptions;
    /**
     * (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 PlotScatterConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotScatterDataGroupingOptions {
    /**
     * (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?: (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) Options for the drag handles.
 */
export interface PlotScatterDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotScatterDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotScatterDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotScatterDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotScatterDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotScatterDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotScatterEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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, 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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotScatterLabelOptions {
    /**
     * (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) 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 PlotScatterLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotScatterLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotScatterLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotScatterLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotScatterMarkerOptions {
    /**
     * (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, 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?: (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?: PlotScatterMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface PlotScatterMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface PlotScatterMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 PlotScatterMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface PlotScatterMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: PlotScatterMarkerStatesHoverOptions;
    inactive?: PlotScatterMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: PlotScatterMarkerStatesNormalOptions;
    /**
     * (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?: PlotScatterMarkerStatesSelectOptions;
}
/**
 * (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 PlotScatterMarkerStatesSelectOptions {
    /**
     * (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, 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, 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotScatterAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotScatterAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotScatterConnectorsOptions;
    /**
     * (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 name for 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?: PlotScatterDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotScatterDragDropOptions;
    /**
     * (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?: PlotScatterEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotScatterLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotScatterLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotScatterLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotScatterMarkerOptions;
    /**
     * (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.
     */
    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?: PlotScatterPointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotScatterStatesOptions;
    /**
     * (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?: PlotScatterTooltipOptions;
    /**
     * (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.
     */
    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<PlotScatterZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotScatterPointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotScatterPointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotScatterPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotScatterStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotScatterStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Options for the hovered series. These settings
 * override the normal state options when a series is moused over or touched.
 */
export interface PlotScatterStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotScatterStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts, 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?: (PlotScatterStatesHoverHaloOptions|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;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotScatterStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotScatterStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotScatterStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotScatterStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotScatterStatesOptions {
    /**
     * (Highcharts, Highstock) Options for the hovered series. These settings
     * override the normal state options when a series is moused over or
     * touched.
     */
    hover?: PlotScatterStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotScatterStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotScatterStatesNormalOptions;
    /**
     * (Highcharts, Highstock) Specific options for point in selected states,
     * after being selected by allowPointSelect or programmatically.
     */
    select?: PlotScatterStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotScatterStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotScatterStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Specific options for point in selected states, after
 * being selected by allowPointSelect or programmatically.
 */
export interface PlotScatterStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotScatterStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, 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?: (PlotScatterStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotScatterTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotScatterTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotScatterTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotScatterZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Keyboard navigation for a series
 */
export interface PlotSeriesAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable/disable keyboard
     * navigation support for a specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for a series.
 * Requires the accessibility module.
 */
export interface PlotSeriesAccessibilityOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Provide a description of the
     * series, announced to screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable/disable accessibility
     * functionality for a specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Expose only the series element
     * to screen readers, not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotSeriesAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Formatter function to use
     * instead of the default for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotSeriesConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotSeriesConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotSeriesConnectorsOptions {
    /**
     * (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?: PlotSeriesConnectorsEndMarkerOptions;
    /**
     * (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?: PlotSeriesConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotSeriesConnectorsStartMarkerOptions;
    /**
     * (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 PlotSeriesConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotSeriesDataGroupingOptions {
    /**
     * (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?: (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, Highmaps, Gantt) Options for the drag handles.
 */
export interface PlotSeriesDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The class name of the drag
     * handles. Defaults to `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The fill color of the drag
     * handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, 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, Highmaps, Gantt) The line color of the drag
     * handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The line width for the drag
     * handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, 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, Highmaps, Gantt) The z index for the drag
     * handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Style options for the guide box
 * default state.
 */
export interface PlotSeriesDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS class name of the guide box
     * in this state. Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Color of the border around the
     * guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Width of the line around the
     * guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotSeriesDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotSeriesDragDropOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable dragging in the X
     * dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, 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, Highmaps, Gantt) Options for the drag handles.
     */
    dragHandle?: PlotSeriesDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Set the maximum X value the
     * points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Set the maximum Y value the
     * points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Set the minimum X value the
     * points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Set the minimum Y value the
     * points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock, Highmaps, 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, Highmaps, 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, Highmaps, 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, Highmaps, Gantt) Group the points by a property.
     * Points with the same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Style options for the guide box.
     * The guide box has one state by default, the `default` state.
     */
    guideBox?: (PlotSeriesDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Update points as they are
     * dragged. If false, a guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotSeriesEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires when the series is hidden
     * after chart generation time, either by clicking the legend item or by
     * calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires when the mouse enters the
     * graph. One parameter, `event`, is passed to the function, containing
     * common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires when the series is shown
     * after chart generation time, either by clicking the legend item or by
     * calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotSeriesLabelOptions {
    /**
     * (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) 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 PlotSeriesLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotSeriesLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotSeriesLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotSeriesLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotSeriesMarkerOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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, Highmaps, Gantt) 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, Highmaps, Gantt) The fill color of the point
     * marker. When `undefined`, the series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Image markers only. Set the
     * image width explicitly. When using this option, a `width` must also be
     * set.
     */
    height?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the point marker's
     * outline. When `undefined`, the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the point marker's
     * outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) States for a single point
     * marker.
     */
    states?: PlotSeriesMarkerStatesOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Image markers only. Set the
     * image width explicitly. When using this option, a `height` must also be
     * set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The hover state for a single point
 * marker.
 */
export interface PlotSeriesMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Animation when hovering over the
     * marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the point
     * marker.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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, Highstock, Highmaps, Gantt) 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, Highmaps, Gantt) 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, Highmaps, Gantt) The additional line width for a
     * hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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, Highmaps, Gantt) The number of pixels to increase
     * the radius of the hovered point.
     */
    radiusPlus?: number;
}
export interface PlotSeriesMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Animation when not hovering over
     * the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The normal state of a single point
 * marker. Currently only used for setting animation when returning to normal
 * state from hover.
 */
export interface PlotSeriesMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Animation when returning to
     * normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) States for a single point marker.
 */
export interface PlotSeriesMarkerStatesOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The hover state for a single
     * point marker.
     */
    hover?: PlotSeriesMarkerStatesHoverOptions;
    inactive?: PlotSeriesMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The normal state of a single
     * point marker. Currently only used for setting animation when returning to
     * normal state from hover.
     */
    normal?: PlotSeriesMarkerStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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?: PlotSeriesMarkerStatesSelectOptions;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) 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 PlotSeriesMarkerStatesSelectOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable visible
     * feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The fill color of the point
     * marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the point marker's
     * outline. When `undefined`, the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the point marker's
     * outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The radius of the point marker.
     * In hover state, it defaults to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the accessibility module.
     */
    accessibility?: (object|PlotSeriesAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotSeriesAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotSeriesConnectorsOptions;
    /**
     * (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 name for 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?: PlotSeriesDataGroupingOptions;
    /**
     * (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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Requires the Accessibility
     * module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotSeriesDragDropOptions;
    /**
     * (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?: PlotSeriesEventsOptions;
    /**
     * (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 five 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) Export-data module required.
     * 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotSeriesLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotSeriesLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotSeriesLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotSeriesMarkerOptions;
    /**
     * (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.
     */
    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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotSeriesStatesOptions;
    /**
     * (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.
     */
    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?: PlotSeriesTooltipOptions;
    /**
     * (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.
     */
    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<PlotSeriesZonesOptions>;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Events for each single point.
 */
export interface PlotSeriesPointEventsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, 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, Highmaps, 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, 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, Highmaps, 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, Highmaps, 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;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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, Highmaps, 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;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Properties for each single point.
 */
export interface PlotSeriesPointOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Events for each single point.
     */
    events?: PlotSeriesPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotSeriesStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotSeriesStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the hovered series.
 * These settings override the normal state options when a series is moused over
 * or touched.
 */
export interface PlotSeriesStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotSeriesStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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?: (PlotSeriesStatesHoverHaloOptions|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;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The animation for entering the
 * inactive state.
 */
export interface PlotSeriesStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The opposite state of a hover for
 * series.
 */
export interface PlotSeriesStatesInactiveOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation for entering the
     * inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotSeriesStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Opacity of series elements
     * (dataLabels, line, area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) 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 PlotSeriesStatesNormalOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Animation when returning to
     * normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotSeriesStatesOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the hovered series.
     * These settings override the normal state options when a series is moused
     * over or touched.
     */
    hover?: PlotSeriesStatesHoverOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The opposite state of a hover
     * for series.
     */
    inactive?: PlotSeriesStatesInactiveOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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?: PlotSeriesStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Specific options for point in
     * selected states, after being selected by allowPointSelect or
     * programmatically.
     */
    select?: PlotSeriesStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotSeriesStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotSeriesStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Specific options for point in
 * selected states, after being selected by allowPointSelect or
 * programmatically.
 */
export interface PlotSeriesStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotSeriesStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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?: (PlotSeriesStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotSeriesTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotSeriesTooltipOptions {
    /**
     * (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, 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?: (PlotSeriesTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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) 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) 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) 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;
}
/**
 * (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 PlotSeriesZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotSmaAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotSmaAccessibilityOptions {
    /**
     * (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?: (object|PlotSmaAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotSmaConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotSmaConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotSmaConnectorsOptions {
    /**
     * (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?: PlotSmaConnectorsEndMarkerOptions;
    /**
     * (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?: PlotSmaConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotSmaConnectorsStartMarkerOptions;
    /**
     * (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 PlotSmaConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotSmaDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotSmaEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotSmaLabelOptions {
    /**
     * (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) 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 PlotSmaLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotSmaLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotSmaLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotSmaLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotSmaMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotSmaMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotSmaMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotSmaMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotSmaMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotSmaMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotSmaMarkerStatesHoverOptions;
    inactive?: PlotSmaMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotSmaMarkerStatesNormalOptions;
    /**
     * (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?: PlotSmaMarkerStatesSelectOptions;
}
/**
 * (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 PlotSmaMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotSmaAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotSmaAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotSmaConnectorsOptions;
    /**
     * (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 name for 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?: PlotSmaDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotSmaEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotSmaLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotSmaLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotSmaLastVisiblePriceOptions;
    /**
     * (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?: PlotSmaMarkerOptions;
    /**
     * (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.
     */
    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?: PlotSmaPointOptions;
    /**
     * (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?: PlotSmaStatesOptions;
    /**
     * (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.
     */
    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?: PlotSmaTooltipOptions;
    /**
     * (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.
     */
    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<PlotSmaZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotSmaPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotSmaPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotSmaPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotSmaStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotSmaStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotSmaStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotSmaStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotSmaStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotSmaStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotSmaStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotSmaStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotSmaStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotSmaStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotSmaStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotSmaStatesInactiveOptions;
    /**
     * (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?: PlotSmaStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotSmaStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotSmaStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotSmaStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotSmaStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotSmaStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotSmaStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotSmaTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotSmaTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotSmaTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotSmaZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotSolidgaugeAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotSolidgaugeAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotSolidgaugeAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotSolidgaugeConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotSolidgaugeConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotSolidgaugeConnectorsOptions {
    /**
     * (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?: PlotSolidgaugeConnectorsEndMarkerOptions;
    /**
     * (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?: PlotSolidgaugeConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotSolidgaugeConnectorsStartMarkerOptions;
    /**
     * (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 PlotSolidgaugeConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotSolidgaugeDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotSolidgaugeEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotSolidgaugeLabelOptions {
    /**
     * (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) 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 PlotSolidgaugeLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotSolidgaugeLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotSolidgaugeLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotSolidgaugeLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotSolidgaugeAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotSolidgaugeAnimationOptions);
    /**
     * (Highcharts) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotSolidgaugeConnectorsOptions;
    /**
     * (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);
    /**
     * (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?: PlotSolidgaugeDataGroupingOptions;
    /**
     * (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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotSolidgaugeEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotSolidgaugeLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotSolidgaugeLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotSolidgaugeLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotSolidgaugePointOptions;
    /**
     * (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.
     */
    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?: PlotSolidgaugeTooltipOptions;
    /**
     * (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) Events for each single point.
 */
export interface PlotSolidgaugePointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotSolidgaugePointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotSolidgaugePointEventsOptions;
}
/**
 * (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.
 */
export interface PlotSolidgaugeTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotSolidgaugeTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotSolidgaugeTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) Keyboard navigation for a series
 */
export interface PlotSplineAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotSplineAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotSplineAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotSplineConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotSplineConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotSplineConnectorsOptions {
    /**
     * (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?: PlotSplineConnectorsEndMarkerOptions;
    /**
     * (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?: PlotSplineConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotSplineConnectorsStartMarkerOptions;
    /**
     * (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 PlotSplineConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotSplineDataGroupingOptions {
    /**
     * (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?: (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) Options for the drag handles.
 */
export interface PlotSplineDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotSplineDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotSplineDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotSplineDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotSplineDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotSplineDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotSplineEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotSplineLabelOptions {
    /**
     * (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) 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 PlotSplineLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotSplineLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotSplineLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotSplineLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotSplineMarkerOptions {
    /**
     * (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, 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?: (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?: PlotSplineMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface PlotSplineMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface PlotSplineMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 PlotSplineMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface PlotSplineMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: PlotSplineMarkerStatesHoverOptions;
    inactive?: PlotSplineMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: PlotSplineMarkerStatesNormalOptions;
    /**
     * (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?: PlotSplineMarkerStatesSelectOptions;
}
/**
 * (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 PlotSplineMarkerStatesSelectOptions {
    /**
     * (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, 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, 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotSplineAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotSplineAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotSplineConnectorsOptions;
    /**
     * (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 name for 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?: PlotSplineDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotSplineDragDropOptions;
    /**
     * (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?: PlotSplineEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotSplineLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotSplineLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotSplineLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotSplineMarkerOptions;
    /**
     * (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.
     */
    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?: PlotSplinePointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotSplineStatesOptions;
    /**
     * (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.
     */
    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?: PlotSplineTooltipOptions;
    /**
     * (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.
     */
    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<PlotSplineZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotSplinePointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotSplinePointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotSplinePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotSplineStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotSplineStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Options for the hovered series. These settings
 * override the normal state options when a series is moused over or touched.
 */
export interface PlotSplineStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotSplineStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts, 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?: (PlotSplineStatesHoverHaloOptions|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;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotSplineStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotSplineStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotSplineStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotSplineStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotSplineStatesOptions {
    /**
     * (Highcharts, Highstock) Options for the hovered series. These settings
     * override the normal state options when a series is moused over or
     * touched.
     */
    hover?: PlotSplineStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotSplineStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotSplineStatesNormalOptions;
    /**
     * (Highcharts, Highstock) Specific options for point in selected states,
     * after being selected by allowPointSelect or programmatically.
     */
    select?: PlotSplineStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotSplineStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotSplineStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Specific options for point in selected states, after
 * being selected by allowPointSelect or programmatically.
 */
export interface PlotSplineStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotSplineStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, 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?: (PlotSplineStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotSplineTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotSplineTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotSplineTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotSplineZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotStochasticAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotStochasticAccessibilityOptions {
    /**
     * (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?: (object|PlotStochasticAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotStochasticConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotStochasticConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotStochasticConnectorsOptions {
    /**
     * (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?: PlotStochasticConnectorsEndMarkerOptions;
    /**
     * (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?: PlotStochasticConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotStochasticConnectorsStartMarkerOptions;
    /**
     * (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 PlotStochasticConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotStochasticDataGroupingOptions {
    /**
     * (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;
    /**
     * (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)]>;
}
/**
 * (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 PlotStochasticEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotStochasticLabelOptions {
    /**
     * (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) 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 PlotStochasticLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotStochasticLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotStochasticLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotStochasticLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotStochasticMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotStochasticMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotStochasticMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotStochasticMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotStochasticMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotStochasticMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotStochasticMarkerStatesHoverOptions;
    inactive?: PlotStochasticMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotStochasticMarkerStatesNormalOptions;
    /**
     * (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?: PlotStochasticMarkerStatesSelectOptions;
}
/**
 * (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 PlotStochasticMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotStochasticAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotStochasticAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotStochasticConnectorsOptions;
    /**
     * (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 name for 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?: PlotStochasticDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotStochasticEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotStochasticLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotStochasticLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotStochasticLastVisiblePriceOptions;
    /**
     * (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?: PlotStochasticMarkerOptions;
    /**
     * (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.
     */
    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?: PlotStochasticPointOptions;
    /**
     * (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?: PlotStochasticStatesOptions;
    /**
     * (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.
     */
    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?: PlotStochasticTooltipOptions;
    /**
     * (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.
     */
    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<PlotStochasticZonesOptions>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotStochasticParamsOptions {
    /**
     * (Highstock) Periods for Stochastic oscillator: [%K, %D].
     */
    periods?: [number, number];
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotStochasticPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotStochasticPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotStochasticPointEventsOptions;
}
/**
 * (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) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotStochasticStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotStochasticStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotStochasticStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotStochasticStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotStochasticStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotStochasticStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotStochasticStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotStochasticStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotStochasticStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotStochasticStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotStochasticStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotStochasticStatesInactiveOptions;
    /**
     * (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?: PlotStochasticStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotStochasticStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotStochasticStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotStochasticStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotStochasticStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotStochasticStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotStochasticStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotStochasticTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotStochasticTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotStochasticTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotStochasticZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotStreamgraphAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotStreamgraphAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotStreamgraphAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotStreamgraphConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotStreamgraphConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotStreamgraphConnectorsOptions {
    /**
     * (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?: PlotStreamgraphConnectorsEndMarkerOptions;
    /**
     * (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?: PlotStreamgraphConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotStreamgraphConnectorsStartMarkerOptions;
    /**
     * (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 PlotStreamgraphConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotStreamgraphDataGroupingOptions {
    /**
     * (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?: (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) Options for the drag handles.
 */
export interface PlotStreamgraphDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface PlotStreamgraphDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotStreamgraphDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotStreamgraphDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: PlotStreamgraphDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (PlotStreamgraphDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotStreamgraphEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotStreamgraphLabelOptions {
    /**
     * (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) 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 PlotStreamgraphLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotStreamgraphLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotStreamgraphLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotStreamgraphLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotStreamgraphMarkerOptions {
    /**
     * (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, 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?: (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?: PlotStreamgraphMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface PlotStreamgraphMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface PlotStreamgraphMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 PlotStreamgraphMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface PlotStreamgraphMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: PlotStreamgraphMarkerStatesHoverOptions;
    inactive?: PlotStreamgraphMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: PlotStreamgraphMarkerStatesNormalOptions;
    /**
     * (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?: PlotStreamgraphMarkerStatesSelectOptions;
}
/**
 * (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 PlotStreamgraphMarkerStatesSelectOptions {
    /**
     * (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, 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, 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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotStreamgraphAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotStreamgraphAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotStreamgraphConnectorsOptions;
    /**
     * (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 name for 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?: PlotStreamgraphDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotStreamgraphDragDropOptions;
    /**
     * (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?: PlotStreamgraphEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotStreamgraphLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotStreamgraphLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotStreamgraphLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotStreamgraphMarkerOptions;
    /**
     * (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.
     */
    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?: PlotStreamgraphPointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotStreamgraphStatesOptions;
    /**
     * (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.
     */
    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
     * corresponing Y axis extreme is filled (since v6.1.0).
     */
    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?: PlotStreamgraphTooltipOptions;
    /**
     * (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.
     */
    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<PlotStreamgraphZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotStreamgraphPointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotStreamgraphPointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotStreamgraphPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotStreamgraphStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotStreamgraphStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Options for the hovered series. These settings
 * override the normal state options when a series is moused over or touched.
 */
export interface PlotStreamgraphStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotStreamgraphStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts, 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?: (PlotStreamgraphStatesHoverHaloOptions|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;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotStreamgraphStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotStreamgraphStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotStreamgraphStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotStreamgraphStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotStreamgraphStatesOptions {
    /**
     * (Highcharts, Highstock) Options for the hovered series. These settings
     * override the normal state options when a series is moused over or
     * touched.
     */
    hover?: PlotStreamgraphStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotStreamgraphStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotStreamgraphStatesNormalOptions;
    /**
     * (Highcharts, Highstock) Specific options for point in selected states,
     * after being selected by allowPointSelect or programmatically.
     */
    select?: PlotStreamgraphStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotStreamgraphStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotStreamgraphStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Specific options for point in selected states, after
 * being selected by allowPointSelect or programmatically.
 */
export interface PlotStreamgraphStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotStreamgraphStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, 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?: (PlotStreamgraphStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotStreamgraphTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotStreamgraphTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotStreamgraphTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotStreamgraphZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotSunburstAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotSunburstAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotSunburstAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotSunburstConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotSunburstConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotSunburstConnectorsOptions {
    /**
     * (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?: PlotSunburstConnectorsEndMarkerOptions;
    /**
     * (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?: PlotSunburstConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotSunburstConnectorsStartMarkerOptions;
    /**
     * (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 PlotSunburstConnectorsStartMarkerOptions {
    /**
     * (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) 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) 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 PlotSunburstEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) Fires when the checkbox next to the point 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (Highstock) The line marks the last price from all points.
 */
export interface PlotSunburstLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotSunburstLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotSunburstLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotSunburstLastVisiblePriceLabelOptions;
}
/**
 * (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) 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?: string;
    /**
     * (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) Can set `dataLabels` on all points which lies on the same
     * level.
     */
    dataLabels?: object;
    /**
     * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotSunburstAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotSunburstAnimationOptions);
    /**
     * (Highcharts) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotSunburstConnectorsOptions;
    /**
     * (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) 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) Requires the Accessibility module.
     *
     * 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?: PlotSunburstEventsOptions;
    /**
     * (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) Export-data module required. 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?: PlotSunburstLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotSunburstLastVisiblePriceOptions;
    /**
     * (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.
     */
    linkedTo?: string;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSunburstPointOptions;
    /**
     * (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?: PlotSunburstStatesOptions;
    /**
     * (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?: PlotSunburstTooltipOptions;
    /**
     * (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) Events for each single point.
 */
export interface PlotSunburstPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    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) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotSunburstPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotSunburstPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotSunburstStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotSunburstStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface PlotSunburstStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotSunburstStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts) How much to brighten the point on interaction. Requires the
     * main color to be defined in hex or rgb(a) format.
     *
     * In styled mode, the hover brightness is by default replaced by a
     * fill-opacity given in the `.highcharts-point-hover` class.
     */
    brightness?: number;
    /**
     * (Highmaps) The color of the shape in this state.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotSunburstStatesHoverHaloOptions|null);
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotSunburstStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotSunburstStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotSunburstStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotSunburstStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotSunburstStatesOptions {
    /**
     * (Highcharts) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotSunburstStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotSunburstStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotSunburstStatesNormalOptions;
    /**
     * (Highcharts) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotSunburstStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotSunburstStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotSunburstStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotSunburstStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotSunburstStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotSunburstStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotSunburstTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotSunburstTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotSunburstTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) 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) Keyboard navigation for a series
 */
export interface PlotSupertrendAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotSupertrendAccessibilityOptions {
    /**
     * (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?: (object|PlotSupertrendAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: 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;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotSupertrendConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotSupertrendConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotSupertrendConnectorsOptions {
    /**
     * (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?: PlotSupertrendConnectorsEndMarkerOptions;
    /**
     * (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?: PlotSupertrendConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotSupertrendConnectorsStartMarkerOptions;
    /**
     * (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 PlotSupertrendConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotSupertrendDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotSupertrendEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotSupertrendLabelOptions {
    /**
     * (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) 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 PlotSupertrendLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotSupertrendLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotSupertrendLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotSupertrendLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotSupertrendMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotSupertrendMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotSupertrendMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotSupertrendMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotSupertrendMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotSupertrendMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotSupertrendMarkerStatesHoverOptions;
    inactive?: PlotSupertrendMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotSupertrendMarkerStatesNormalOptions;
    /**
     * (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?: PlotSupertrendMarkerStatesSelectOptions;
}
/**
 * (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 PlotSupertrendMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotSupertrendAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotSupertrendAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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) 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 (see online
     * documentation for example) 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?: PlotSupertrendConnectorsOptions;
    /**
     * (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 name for 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?: PlotSupertrendDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotSupertrendEventsOptions;
    /**
     * (Highstock) Color of the Supertrend series line that is above the main
     * series.
     */
    fallingTrendColor?: ColorString;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotSupertrendLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotSupertrendLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotSupertrendLastVisiblePriceOptions;
    /**
     * (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?: PlotSupertrendMarkerOptions;
    /**
     * (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?: PlotSupertrendPointOptions;
    /**
     * (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;
    /**
     * (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?: PlotSupertrendStatesOptions;
    /**
     * (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.
     */
    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?: PlotSupertrendTooltipOptions;
    /**
     * (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.
     */
    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<PlotSupertrendZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotSupertrendPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotSupertrendPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotSupertrendPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotSupertrendStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotSupertrendStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotSupertrendStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotSupertrendStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotSupertrendStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotSupertrendStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotSupertrendStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotSupertrendStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotSupertrendStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotSupertrendStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotSupertrendStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotSupertrendStatesInactiveOptions;
    /**
     * (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?: PlotSupertrendStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotSupertrendStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotSupertrendStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotSupertrendStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotSupertrendStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotSupertrendStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotSupertrendStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotSupertrendTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotSupertrendTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotSupertrendTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotSupertrendZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotTemaAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotTemaAccessibilityOptions {
    /**
     * (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?: (object|PlotTemaAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotTemaConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotTemaConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotTemaConnectorsOptions {
    /**
     * (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?: PlotTemaConnectorsEndMarkerOptions;
    /**
     * (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?: PlotTemaConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotTemaConnectorsStartMarkerOptions;
    /**
     * (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 PlotTemaConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotTemaDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotTemaEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotTemaLabelOptions {
    /**
     * (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) 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 PlotTemaLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotTemaLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotTemaLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotTemaLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotTemaMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotTemaMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotTemaMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotTemaMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotTemaMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotTemaMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotTemaMarkerStatesHoverOptions;
    inactive?: PlotTemaMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotTemaMarkerStatesNormalOptions;
    /**
     * (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?: PlotTemaMarkerStatesSelectOptions;
}
/**
 * (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 PlotTemaMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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`.
 *
 * Requires `https://code.highcharts.com/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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotTemaAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotTemaAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotTemaConnectorsOptions;
    /**
     * (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 name for 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?: PlotTemaDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotTemaEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotTemaLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotTemaLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotTemaLastVisiblePriceOptions;
    /**
     * (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?: PlotTemaMarkerOptions;
    /**
     * (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.
     */
    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?: PlotTemaPointOptions;
    /**
     * (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?: PlotTemaStatesOptions;
    /**
     * (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.
     */
    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?: PlotTemaTooltipOptions;
    /**
     * (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.
     */
    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<PlotTemaZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotTemaPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotTemaPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotTemaPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotTemaStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotTemaStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotTemaStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotTemaStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotTemaStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotTemaStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotTemaStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotTemaStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotTemaStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotTemaStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotTemaStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotTemaStatesInactiveOptions;
    /**
     * (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?: PlotTemaStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotTemaStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotTemaStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotTemaStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotTemaStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotTemaStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotTemaStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotTemaTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotTemaTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotTemaTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotTemaZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highmaps) Keyboard navigation for a series
 */
export interface PlotTilemapAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highmaps) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highmaps) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotTilemapAccessibilityOptions {
    /**
     * (Highcharts, Highmaps) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highmaps) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highmaps) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highmaps) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotTilemapAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highmaps) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (Highcharts, Highmaps) Animation is disabled by default on the heatmap
 * series.
 */
export interface PlotTilemapAnimationOptions {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotTilemapConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotTilemapConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotTilemapConnectorsOptions {
    /**
     * (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?: PlotTilemapConnectorsEndMarkerOptions;
    /**
     * (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?: PlotTilemapConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotTilemapConnectorsStartMarkerOptions;
    /**
     * (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 PlotTilemapConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotTilemapDataGroupingOptions {
    /**
     * (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?: (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, Highmaps) Options for the drag handles.
 */
export interface PlotTilemapDragDropDragHandleOptions {
    /**
     * (Highcharts, Highmaps) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) 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, Highmaps) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highmaps) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highmaps) Style options for the guide box default state.
 */
export interface PlotTilemapDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highmaps) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highmaps) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highmaps) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highmaps) Guide box zIndex.
     */
    zIndex?: 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?: PlotTilemapDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotTilemapDragDropOptions {
    /**
     * (Highcharts, Highmaps) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) Options for the drag handles.
     */
    dragHandle?: PlotTilemapDragDropDragHandleOptions;
    /**
     * (Highcharts, Highmaps) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highmaps) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highmaps) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highmaps) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) 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, Highmaps) 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, Highmaps) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highmaps) Style options for the guide box. The guide box has
     * one state by default, the `default` state.
     */
    guideBox?: (PlotTilemapDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highmaps) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotTilemapEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, Highmaps) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, Highmaps) 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;
    /**
     * (Highcharts, Highmaps) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, Highmaps) 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;
    /**
     * (Highcharts, Highmaps) 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;
    /**
     * (Highcharts, Highmaps) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highmaps) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotTilemapLabelOptions {
    /**
     * (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) 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 PlotTilemapLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotTilemapLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotTilemapLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotTilemapLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotTilemapAccessibilityOptions);
    /**
     * (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);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 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 (see online
     * documentation for example) 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?: PlotTilemapConnectorsOptions;
    /**
     * (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, 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);
    /**
     * (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?: PlotTilemapDataGroupingOptions;
    /**
     * (Highcharts, Highmaps) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highmaps) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotTilemapDragDropOptions;
    /**
     * (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?: PlotTilemapEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotTilemapLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotTilemapLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotTilemapLastVisiblePriceOptions;
    /**
     * (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.
     */
    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, Highmaps) The color for the parts of the graph or points
     * that are below the threshold.
     */
    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?: PlotTilemapPointOptions;
    /**
     * (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?: PlotTilemapStatesOptions;
    /**
     * (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?: PlotTilemapTooltipOptions;
    /**
     * (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.
     */
    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<PlotTilemapZonesOptions>;
}
/**
 * (Highcharts, Highmaps) Events for each single point.
 */
export interface PlotTilemapPointEventsOptions {
    /**
     * (Highcharts, Highmaps) 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, Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) 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, Highmaps) 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;
    /**
     * (Highcharts, Highmaps) 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;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) 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;
}
/**
 * (Highcharts, Highmaps) Properties for each single point.
 */
export interface PlotTilemapPointOptions {
    /**
     * (Highcharts, Highmaps) Events for each single point.
     */
    events?: PlotTilemapPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotTilemapStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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, 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 PlotTilemapStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: PlotTilemapStatesHoverHaloAttributesOptions;
    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;
}
/**
 * (Highcharts, Highmaps) Options for the hovered series. These settings
 * override the normal state options when a series is moused over or touched.
 */
export interface PlotTilemapStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotTilemapStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highmaps) How much to brighten the point on interaction. Requires the
     * main color to be defined in hex or rgb(a) format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highmaps) The color of the shape in this state.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) 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?: PlotTilemapStatesHoverHaloOptions;
    /**
     * (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, Highmaps) The animation for entering the inactive state.
 */
export interface PlotTilemapStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highmaps) The opposite state of a hover for series.
 */
export interface PlotTilemapStatesInactiveOptions {
    /**
     * (Highcharts, Highmaps) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotTilemapStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highmaps) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, Highmaps) 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 PlotTilemapStatesNormalOptions {
    /**
     * (Highcharts, Highmaps) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotTilemapStatesOptions {
    /**
     * (Highcharts, Highmaps) Options for the hovered series. These settings
     * override the normal state options when a series is moused over or
     * touched.
     */
    hover?: PlotTilemapStatesHoverOptions;
    /**
     * (Highcharts, Highmaps) The opposite state of a hover for series.
     */
    inactive?: PlotTilemapStatesInactiveOptions;
    /**
     * (Highcharts, Highmaps) 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?: PlotTilemapStatesNormalOptions;
    /**
     * (Highcharts, Highmaps) Specific options for point in selected states,
     * after being selected by allowPointSelect or programmatically.
     */
    select?: PlotTilemapStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotTilemapStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotTilemapStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highmaps) Specific options for point in selected states, after
 * being selected by allowPointSelect or programmatically.
 */
export interface PlotTilemapStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotTilemapStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) 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?: (PlotTilemapStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotTilemapTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotTilemapTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotTilemapTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotTilemapZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotTimelineAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotTimelineAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotTimelineAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotTimelineConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotTimelineConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotTimelineConnectorsOptions {
    /**
     * (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?: PlotTimelineConnectorsEndMarkerOptions;
    /**
     * (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?: PlotTimelineConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotTimelineConnectorsStartMarkerOptions;
    /**
     * (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 PlotTimelineConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotTimelineDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotTimelineDataLabelsOptions {
    allowOverlap?: boolean;
    /**
     * (Highcharts) 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;
    backgroundColor?: string;
    borderColor?: string;
    borderRadius?: number;
    borderWidth?: number;
    color?: string;
    /**
     * (Highcharts) 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?: string;
    /**
     * (Highcharts) 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) 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;
    enabled?: boolean;
    formatter?: FormatterCallbackFunction<object>;
    /**
     * (Highcharts) Shadow options for the data label.
     */
    shadow?: (boolean|CSSObject);
    style?: PlotTimelineDataLabelsStyleOptions;
    verticalAlign?: string;
}
export interface PlotTimelineDataLabelsStyleOptions {
    fontSize?: string;
    fontWeight?: string;
    textOutline?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface PlotTimelineDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface PlotTimelineDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: PlotTimelineDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotTimelineDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: PlotTimelineDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotTimelineDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotTimelineEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotTimelineLabelOptions {
    /**
     * (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) 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 PlotTimelineLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotTimelineLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotTimelineLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotTimelineLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotTimelineMarkerOptions {
    /**
     * (Highcharts) 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) 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) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highcharts) States for a single point marker.
     */
    states?: PlotTimelineMarkerStatesOptions;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts) The hover state for a single point marker.
 */
export interface PlotTimelineMarkerStatesHoverOptions {
    /**
     * (Highcharts) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (Highcharts) 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) 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) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (Highcharts) 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) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotTimelineMarkerStatesInactiveOptions {
    /**
     * (Highcharts) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highcharts) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotTimelineMarkerStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts) States for a single point marker.
 */
export interface PlotTimelineMarkerStatesOptions {
    /**
     * (Highcharts) The hover state for a single point marker.
     */
    hover?: PlotTimelineMarkerStatesHoverOptions;
    inactive?: PlotTimelineMarkerStatesInactiveOptions;
    /**
     * (Highcharts) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotTimelineMarkerStatesNormalOptions;
    /**
     * (Highcharts) 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?: PlotTimelineMarkerStatesSelectOptions;
}
/**
 * (Highcharts) 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 PlotTimelineMarkerStatesSelectOptions {
    /**
     * (Highcharts) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highcharts) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotTimelineAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotTimelineAnimationOptions);
    /**
     * (Highcharts) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotTimelineConnectorsOptions;
    /**
     * (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);
    /**
     * (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?: PlotTimelineDataGroupingOptions;
    /**
     * (Highcharts) 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?: PlotTimelineDataLabelsOptions;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotTimelineDragDropOptions;
    /**
     * (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?: PlotTimelineEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotTimelineLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotTimelineLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotTimelineLastVisiblePriceOptions;
    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.
     */
    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?: PlotTimelineMarkerOptions;
    /**
     * (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?: PlotTimelinePointOptions;
    /**
     * (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?: PlotTimelineStatesOptions;
    /**
     * (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.
     */
    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?: PlotTimelineTooltipOptions;
    /**
     * (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) Events for each single point.
 */
export interface PlotTimelinePointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotTimelinePointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotTimelinePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotTimelineStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotTimelineStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface PlotTimelineStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotTimelineStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts) 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?: (PlotTimelineStatesHoverHaloOptions|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;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotTimelineStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotTimelineStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotTimelineStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotTimelineStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotTimelineStatesOptions {
    /**
     * (Highcharts) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotTimelineStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotTimelineStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotTimelineStatesNormalOptions;
    /**
     * (Highcharts) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotTimelineStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotTimelineStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotTimelineStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotTimelineStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotTimelineStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotTimelineStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotTimelineTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotTimelineTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotTimelineTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) Keyboard navigation for a series
 */
export interface PlotTreemapAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotTreemapAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotTreemapAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotTreemapConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotTreemapConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotTreemapConnectorsOptions {
    /**
     * (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?: PlotTreemapConnectorsEndMarkerOptions;
    /**
     * (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?: PlotTreemapConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotTreemapConnectorsStartMarkerOptions;
    /**
     * (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 PlotTreemapConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotTreemapDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotTreemapEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotTreemapLabelOptions {
    /**
     * (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) 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 PlotTreemapLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotTreemapLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotTreemapLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotTreemapLastVisiblePriceLabelOptions;
}
/**
 * (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) 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 (see online documentation for example) for possible
     * options.
     */
    borderDashStyle?: string;
    /**
     * (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?: object;
    /**
     * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotTreemapAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotTreemapAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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) 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?: 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) 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 (see online
     * documentation for example) 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?: PlotTreemapConnectorsOptions;
    /**
     * (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 name for 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?: PlotTreemapDataGroupingOptions;
    /**
     * (Highcharts) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotTreemapEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotTreemapLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotTreemapLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotTreemapLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotTreemapPointOptions;
    /**
     * (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. A special stacking option is with the
     * streamgraph series type, where 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?: PlotTreemapStatesOptions;
    /**
     * (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?: PlotTreemapTooltipOptions;
    /**
     * (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.
     */
    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<PlotTreemapZonesOptions>;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotTreemapPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotTreemapPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotTreemapPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotTreemapStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotTreemapStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Options for the hovered series
 */
export interface PlotTreemapStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotTreemapStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color for the hovered state.
     */
    borderColor?: string;
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highmaps) Brightness for the hovered point. Defaults to 0 if the heatmap
     * series is loaded first, otherwise 0.1.
     */
    brightness?: number;
    /**
     * (Highmaps) The color of the shape in this state.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (boolean|PlotTreemapStatesHoverHaloOptions);
    /**
     * (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) 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;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotTreemapStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotTreemapStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotTreemapStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotTreemapStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts) A wrapper object for all the series options in specific states.
 */
export interface PlotTreemapStatesOptions {
    /**
     * (Highcharts) Options for the hovered series
     */
    hover?: PlotTreemapStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotTreemapStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotTreemapStatesNormalOptions;
    /**
     * (Highcharts) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotTreemapStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotTreemapStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotTreemapStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotTreemapStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotTreemapStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotTreemapStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotTreemapTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotTreemapTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotTreemapTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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;
}
/**
 * (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 PlotTreemapZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotTrendlineAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotTrendlineAccessibilityOptions {
    /**
     * (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?: (object|PlotTrendlineAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotTrendlineConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotTrendlineConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotTrendlineConnectorsOptions {
    /**
     * (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?: PlotTrendlineConnectorsEndMarkerOptions;
    /**
     * (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?: PlotTrendlineConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotTrendlineConnectorsStartMarkerOptions;
    /**
     * (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 PlotTrendlineConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotTrendlineDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotTrendlineEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotTrendlineLabelOptions {
    /**
     * (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) 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 PlotTrendlineLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotTrendlineLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotTrendlineLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotTrendlineLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotTrendlineMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotTrendlineMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotTrendlineMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotTrendlineMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotTrendlineMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotTrendlineMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotTrendlineMarkerStatesHoverOptions;
    inactive?: PlotTrendlineMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotTrendlineMarkerStatesNormalOptions;
    /**
     * (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?: PlotTrendlineMarkerStatesSelectOptions;
}
/**
 * (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 PlotTrendlineMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotTrendlineAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotTrendlineAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotTrendlineConnectorsOptions;
    /**
     * (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 name for 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?: PlotTrendlineDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotTrendlineEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotTrendlineLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotTrendlineLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotTrendlineLastVisiblePriceOptions;
    /**
     * (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?: PlotTrendlineMarkerOptions;
    /**
     * (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.
     */
    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?: PlotTrendlinePointOptions;
    /**
     * (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?: PlotTrendlineStatesOptions;
    /**
     * (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.
     */
    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?: PlotTrendlineTooltipOptions;
    /**
     * (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.
     */
    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<PlotTrendlineZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotTrendlinePointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotTrendlinePointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotTrendlinePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotTrendlineStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotTrendlineStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotTrendlineStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotTrendlineStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotTrendlineStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotTrendlineStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotTrendlineStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotTrendlineStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotTrendlineStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotTrendlineStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotTrendlineStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotTrendlineStatesInactiveOptions;
    /**
     * (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?: PlotTrendlineStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotTrendlineStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotTrendlineStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotTrendlineStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotTrendlineStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotTrendlineStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotTrendlineStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotTrendlineTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotTrendlineTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotTrendlineTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotTrendlineZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotTrixAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotTrixAccessibilityOptions {
    /**
     * (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?: (object|PlotTrixAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotTrixConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotTrixConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotTrixConnectorsOptions {
    /**
     * (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?: PlotTrixConnectorsEndMarkerOptions;
    /**
     * (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?: PlotTrixConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotTrixConnectorsStartMarkerOptions;
    /**
     * (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 PlotTrixConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotTrixDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotTrixEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotTrixLabelOptions {
    /**
     * (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) 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 PlotTrixLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotTrixLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotTrixLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotTrixLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotTrixMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotTrixMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotTrixMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotTrixMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotTrixMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotTrixMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotTrixMarkerStatesHoverOptions;
    inactive?: PlotTrixMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotTrixMarkerStatesNormalOptions;
    /**
     * (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?: PlotTrixMarkerStatesSelectOptions;
}
/**
 * (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 PlotTrixMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotTrixAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotTrixAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotTrixConnectorsOptions;
    /**
     * (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 name for 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?: PlotTrixDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotTrixEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotTrixLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotTrixLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotTrixLastVisiblePriceOptions;
    /**
     * (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?: PlotTrixMarkerOptions;
    /**
     * (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.
     */
    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?: PlotTrixPointOptions;
    /**
     * (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?: PlotTrixStatesOptions;
    /**
     * (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.
     */
    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?: PlotTrixTooltipOptions;
    /**
     * (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.
     */
    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<PlotTrixZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotTrixPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotTrixPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotTrixPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotTrixStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotTrixStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotTrixStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotTrixStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotTrixStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotTrixStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotTrixStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotTrixStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotTrixStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotTrixStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotTrixStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotTrixStatesInactiveOptions;
    /**
     * (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?: PlotTrixStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotTrixStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotTrixStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotTrixStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotTrixStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotTrixStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotTrixStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotTrixTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotTrixTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotTrixTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotTrixZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotVariablepieAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotVariablepieAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotVariablepieAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotVariablepieConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotVariablepieConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotVariablepieConnectorsOptions {
    /**
     * (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?: PlotVariablepieConnectorsEndMarkerOptions;
    /**
     * (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?: PlotVariablepieConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotVariablepieConnectorsStartMarkerOptions;
    /**
     * (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 PlotVariablepieConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotVariablepieDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotVariablepieEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) Fires when the checkbox next to the point 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (Highstock) The line marks the last price from all points.
 */
export interface PlotVariablepieLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotVariablepieLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotVariablepieLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotVariablepieLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires `highcharts-more.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 `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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotVariablepieAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotVariablepieAnimationOptions);
    /**
     * (Highcharts) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotVariablepieConnectorsOptions;
    /**
     * (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);
    /**
     * (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?: PlotVariablepieDataGroupingOptions;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) The thickness of a 3D pie. Requires `highcharts-3d.js`
     */
    depth?: number;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotVariablepieEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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?: PlotVariablepieLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotVariablepieLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotVariablepiePointOptions;
    /**
     * (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?: PlotVariablepieStatesOptions;
    /**
     * (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?: PlotVariablepieTooltipOptions;
    /**
     * (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) Events for each single point.
 */
export interface PlotVariablepiePointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    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) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotVariablepiePointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotVariablepiePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotVariablepieStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotVariablepieStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface PlotVariablepieStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotVariablepieStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts) How much to brighten the point on interaction. Requires the
     * main color to be defined in hex or rgb(a) format.
     *
     * In styled mode, the hover brightness is by default replaced by a
     * fill-opacity given in the `.highcharts-point-hover` class.
     */
    brightness?: number;
    /**
     * (Highmaps) The color of the shape in this state.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotVariablepieStatesHoverHaloOptions|null);
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotVariablepieStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotVariablepieStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotVariablepieStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotVariablepieStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotVariablepieStatesOptions {
    /**
     * (Highcharts) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotVariablepieStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotVariablepieStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotVariablepieStatesNormalOptions;
    /**
     * (Highcharts) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotVariablepieStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotVariablepieStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotVariablepieStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotVariablepieStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotVariablepieStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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?: (PlotVariablepieStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotVariablepieTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotVariablepieTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotVariablepieTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) Keyboard navigation for a series
 */
export interface PlotVariwideAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotVariwideAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotVariwideAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotVariwideConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotVariwideConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotVariwideConnectorsOptions {
    /**
     * (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?: PlotVariwideConnectorsEndMarkerOptions;
    /**
     * (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?: PlotVariwideConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotVariwideConnectorsStartMarkerOptions;
    /**
     * (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 PlotVariwideConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotVariwideDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) Options for the drag handles.
 */
export interface PlotVariwideDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface PlotVariwideDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotVariwideDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotVariwideDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: PlotVariwideDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotVariwideDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotVariwideEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotVariwideLabelOptions {
    /**
     * (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) 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 PlotVariwideLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotVariwideLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotVariwideLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotVariwideLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotVariwideAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotVariwideAnimationOptions);
    /**
     * (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, 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) 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 (see online
     * documentation for example) 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?: PlotVariwideConnectorsOptions;
    /**
     * (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);
    /**
     * (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?: PlotVariwideDataGroupingOptions;
    /**
     * (Highcharts) 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?: any;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotVariwideDragDropOptions;
    /**
     * (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?: PlotVariwideEventsOptions;
    /**
     * (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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotVariwideLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotVariwideLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotVariwideLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotVariwidePointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotVariwideStatesOptions;
    /**
     * (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.
     */
    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;
    /**
     * (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?: PlotVariwideTooltipOptions;
    /**
     * (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.
     */
    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<PlotVariwideZonesOptions>;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotVariwidePointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotVariwidePointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotVariwidePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotVariwideStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotVariwideStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotVariwideStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotVariwideStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotVariwideStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotVariwideStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotVariwideStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotVariwideStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotVariwideStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotVariwideStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotVariwideStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotVariwideStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotVariwideStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotVariwideStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotVariwideStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotVariwideTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotVariwideTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotVariwideTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) 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 PlotVariwideZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotVbpAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotVbpAccessibilityOptions {
    /**
     * (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?: (object|PlotVbpAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotVbpConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotVbpConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotVbpConnectorsOptions {
    /**
     * (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?: PlotVbpConnectorsEndMarkerOptions;
    /**
     * (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?: PlotVbpConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotVbpConnectorsStartMarkerOptions;
    /**
     * (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 PlotVbpConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotVbpDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotVbpEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotVbpLabelOptions {
    /**
     * (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) 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 PlotVbpLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotVbpLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotVbpLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotVbpLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotVbpMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotVbpMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotVbpMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotVbpMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotVbpMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotVbpMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotVbpMarkerStatesHoverOptions;
    inactive?: PlotVbpMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotVbpMarkerStatesNormalOptions;
    /**
     * (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?: PlotVbpMarkerStatesSelectOptions;
}
/**
 * (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 PlotVbpMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotVbpAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotVbpAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotVbpConnectorsOptions;
    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 name for 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?: PlotVbpDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotVbpEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotVbpLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotVbpLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotVbpLastVisiblePriceOptions;
    /**
     * (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?: PlotVbpMarkerOptions;
    /**
     * (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.
     */
    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?: PlotVbpPointOptions;
    /**
     * (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?: PlotVbpStatesOptions;
    /**
     * (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.
     */
    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?: PlotVbpTooltipOptions;
    /**
     * (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.
     */
    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<PlotVbpZonesOptions>;
}
/**
 * (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) Events for each single point.
 */
export interface PlotVbpPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotVbpPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotVbpPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotVbpStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotVbpStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotVbpStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotVbpStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotVbpStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotVbpStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotVbpStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotVbpStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotVbpStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotVbpStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotVbpStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotVbpStatesInactiveOptions;
    /**
     * (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?: PlotVbpStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotVbpStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotVbpStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotVbpStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotVbpStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotVbpStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotVbpStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotVbpTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotVbpTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotVbpTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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;
}
/**
 * (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) 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 PlotVbpZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotVectorAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotVectorAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotVectorAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotVectorConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotVectorConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotVectorConnectorsOptions {
    /**
     * (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?: PlotVectorConnectorsEndMarkerOptions;
    /**
     * (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?: PlotVectorConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotVectorConnectorsStartMarkerOptions;
    /**
     * (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 PlotVectorConnectorsStartMarkerOptions {
    /**
     * (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) 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) 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 PlotVectorEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotVectorLabelOptions {
    /**
     * (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) 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 PlotVectorLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotVectorLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotVectorLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotVectorLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotVectorAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotVectorAnimationOptions);
    /**
     * (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;
    /**
     * (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 (see online
     * documentation for example) 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?: PlotVectorConnectorsOptions;
    /**
     * (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) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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?: PlotVectorEventsOptions;
    /**
     * (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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotVectorLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotVectorLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotVectorLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotVectorPointOptions;
    /**
     * (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?: PlotVectorStatesOptions;
    /**
     * (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?: PlotVectorTooltipOptions;
    /**
     * (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.
     */
    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<PlotVectorZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotVectorPointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotVectorPointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotVectorPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotVectorStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotVectorStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Options for the hovered series. These settings
 * override the normal state options when a series is moused over or touched.
 */
export interface PlotVectorStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotVectorStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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);
    /**
     * (Highcharts, 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?: (PlotVectorStatesHoverHaloOptions|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) Additonal line width for the vector errors when
     * they are hovered.
     */
    lineWidthPlus?: number;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotVectorStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotVectorStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotVectorStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotVectorStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotVectorStatesOptions {
    /**
     * (Highcharts, Highstock) Options for the hovered series. These settings
     * override the normal state options when a series is moused over or
     * touched.
     */
    hover?: PlotVectorStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotVectorStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotVectorStatesNormalOptions;
    /**
     * (Highcharts, Highstock) Specific options for point in selected states,
     * after being selected by allowPointSelect or programmatically.
     */
    select?: PlotVectorStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotVectorStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotVectorStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Specific options for point in selected states, after
 * being selected by allowPointSelect or programmatically.
 */
export interface PlotVectorStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotVectorStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, 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?: (PlotVectorStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotVectorTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotVectorTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotVectorTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotVectorZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotVennAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotVennAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotVennAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotVennConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotVennConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotVennConnectorsOptions {
    /**
     * (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?: PlotVennConnectorsEndMarkerOptions;
    /**
     * (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?: PlotVennConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotVennConnectorsStartMarkerOptions;
    /**
     * (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 PlotVennConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotVennDataGroupingOptions {
    /**
     * (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?: (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) 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 PlotVennEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (Highstock) The line marks the last price from all points.
 */
export interface PlotVennLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotVennLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotVennLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotVennLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotVennAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotVennAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    boostThreshold?: 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) 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 (see online
     * documentation for example) 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?: PlotVennConnectorsOptions;
    /**
     * (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 name for 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?: PlotVennDataGroupingOptions;
    /**
     * (Highcharts) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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?: PlotVennEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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?: PlotVennLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotVennLastVisiblePriceOptions;
    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?: PlotVennPointOptions;
    /**
     * (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?: PlotVennStatesOptions;
    /**
     * (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?: PlotVennTooltipOptions;
    /**
     * (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.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotVennPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotVennPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotVennPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotVennStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface PlotVennStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotVennStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: string;
    /**
     * (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);
    /**
     * (Highcharts) Enable separate styles for the hovered series to visualize
     * that the user hovers either the series itself or the legend.
     */
    enabled?: boolean;
    /**
     * (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;
    opacity?: number;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotVennStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotVennStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotVennStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotVennStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotVennStatesOptions {
    /**
     * (Highcharts) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotVennStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotVennStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotVennStatesNormalOptions;
    /**
     * (Highcharts) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotVennStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotVennStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotVennStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|PlotVennStatesSelectAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: string;
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highmaps) The color of the shape in this state.
     */
    color?: string;
    /**
     * (Highcharts) Enable separate styles for the hovered series to visualize
     * that the user hovers either the series itself or the legend.
     */
    enabled?: boolean;
    /**
     * (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) 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.
 */
export interface PlotVennTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotVennTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotVennTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotVwapAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotVwapAccessibilityOptions {
    /**
     * (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?: (object|PlotVwapAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotVwapConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotVwapConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotVwapConnectorsOptions {
    /**
     * (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?: PlotVwapConnectorsEndMarkerOptions;
    /**
     * (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?: PlotVwapConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotVwapConnectorsStartMarkerOptions;
    /**
     * (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 PlotVwapConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotVwapDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotVwapEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotVwapLabelOptions {
    /**
     * (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) 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 PlotVwapLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotVwapLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotVwapLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotVwapLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotVwapMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotVwapMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotVwapMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotVwapMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotVwapMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotVwapMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotVwapMarkerStatesHoverOptions;
    inactive?: PlotVwapMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotVwapMarkerStatesNormalOptions;
    /**
     * (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?: PlotVwapMarkerStatesSelectOptions;
}
/**
 * (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 PlotVwapMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotVwapAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotVwapAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotVwapConnectorsOptions;
    /**
     * (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 name for 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?: PlotVwapDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotVwapEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotVwapLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotVwapLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotVwapLastVisiblePriceOptions;
    /**
     * (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?: PlotVwapMarkerOptions;
    /**
     * (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.
     */
    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?: PlotVwapPointOptions;
    /**
     * (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?: PlotVwapStatesOptions;
    /**
     * (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.
     */
    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?: PlotVwapTooltipOptions;
    /**
     * (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.
     */
    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<PlotVwapZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotVwapPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotVwapPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotVwapPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotVwapStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotVwapStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotVwapStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotVwapStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotVwapStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotVwapStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotVwapStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotVwapStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotVwapStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotVwapStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotVwapStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotVwapStatesInactiveOptions;
    /**
     * (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?: PlotVwapStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotVwapStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotVwapStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotVwapStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotVwapStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotVwapStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotVwapStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotVwapTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotVwapTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotVwapTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotVwapZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotWaterfallAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotWaterfallAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotWaterfallAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotWaterfallConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotWaterfallConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotWaterfallConnectorsOptions {
    /**
     * (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?: PlotWaterfallConnectorsEndMarkerOptions;
    /**
     * (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?: PlotWaterfallConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotWaterfallConnectorsStartMarkerOptions;
    /**
     * (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 PlotWaterfallConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotWaterfallDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) Options for the drag handles.
 */
export interface PlotWaterfallDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface PlotWaterfallDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: PlotWaterfallDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotWaterfallDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: PlotWaterfallDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (PlotWaterfallDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: 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.
 */
export interface PlotWaterfallEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotWaterfallLabelOptions {
    /**
     * (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) 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 PlotWaterfallLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotWaterfallLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotWaterfallLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotWaterfallLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotWaterfallAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotWaterfallAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    boostThreshold?: 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) 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 (see online
     * documentation for example) 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?: PlotWaterfallConnectorsOptions;
    /**
     * (Highcharts, Highstock, Gantt) When true, each 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 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?: PlotWaterfallDataGroupingOptions;
    /**
     * (Highcharts) 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?: any;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highcharts) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotWaterfallDragDropOptions;
    /**
     * (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?: PlotWaterfallEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    groupZPadding?: number;
    /**
     * (Highcharts) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotWaterfallLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotWaterfallLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotWaterfallLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotWaterfallPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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. A special stacking option is with the
     * streamgraph series type, where the stacking option is set to `"stream"`.
     * The second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: PlotWaterfallStatesOptions;
    /**
     * (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.
     */
    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;
    /**
     * (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?: PlotWaterfallTooltipOptions;
    /**
     * (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.
     */
    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<PlotWaterfallZonesOptions>;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotWaterfallPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotWaterfallPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotWaterfallPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotWaterfallStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotWaterfallStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotWaterfallStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
    lineWidthPlus?: number;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotWaterfallStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotWaterfallStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotWaterfallStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotWaterfallStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotWaterfallStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotWaterfallStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotWaterfallStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotWaterfallStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotWaterfallStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotWaterfallStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotWaterfallStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotWaterfallStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotWaterfallTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotWaterfallTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotWaterfallTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) 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 PlotWaterfallZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotWilliamsrAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotWilliamsrAccessibilityOptions {
    /**
     * (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?: (object|PlotWilliamsrAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotWilliamsrConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotWilliamsrConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotWilliamsrConnectorsOptions {
    /**
     * (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?: PlotWilliamsrConnectorsEndMarkerOptions;
    /**
     * (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?: PlotWilliamsrConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotWilliamsrConnectorsStartMarkerOptions;
    /**
     * (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 PlotWilliamsrConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotWilliamsrDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotWilliamsrEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotWilliamsrLabelOptions {
    /**
     * (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) 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 PlotWilliamsrLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotWilliamsrLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotWilliamsrLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotWilliamsrLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotWilliamsrMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotWilliamsrMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotWilliamsrMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotWilliamsrMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotWilliamsrMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotWilliamsrMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotWilliamsrMarkerStatesHoverOptions;
    inactive?: PlotWilliamsrMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotWilliamsrMarkerStatesNormalOptions;
    /**
     * (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?: PlotWilliamsrMarkerStatesSelectOptions;
}
/**
 * (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 PlotWilliamsrMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotWilliamsrAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotWilliamsrAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotWilliamsrConnectorsOptions;
    /**
     * (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 name for 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?: PlotWilliamsrDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotWilliamsrEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotWilliamsrLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotWilliamsrLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotWilliamsrLastVisiblePriceOptions;
    /**
     * (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?: PlotWilliamsrMarkerOptions;
    /**
     * (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.
     */
    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?: PlotWilliamsrPointOptions;
    /**
     * (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?: PlotWilliamsrStatesOptions;
    /**
     * (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.
     */
    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?: PlotWilliamsrTooltipOptions;
    /**
     * (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.
     */
    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<PlotWilliamsrZonesOptions>;
}
/**
 * (Highstock) Paramters used in calculation of Williams %R series points.
 */
export interface PlotWilliamsrParamsOptions {
    /**
     * (Highstock) Period for Williams %R oscillator
     */
    period?: number;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotWilliamsrPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotWilliamsrPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotWilliamsrPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotWilliamsrStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotWilliamsrStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotWilliamsrStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotWilliamsrStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotWilliamsrStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotWilliamsrStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotWilliamsrStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotWilliamsrStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotWilliamsrStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotWilliamsrStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotWilliamsrStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotWilliamsrStatesInactiveOptions;
    /**
     * (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?: PlotWilliamsrStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotWilliamsrStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotWilliamsrStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotWilliamsrStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotWilliamsrStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotWilliamsrStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotWilliamsrStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotWilliamsrTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotWilliamsrTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotWilliamsrTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotWilliamsrZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock) Keyboard navigation for a series
 */
export interface PlotWindbarbAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock) Enable/disable keyboard navigation support for a
     * specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock) Accessibility options for a series. Requires the
 * accessibility module.
 */
export interface PlotWindbarbAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the series, announced to
     * screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable/disable accessibility functionality for a
     * specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Expose only the series element to screen readers,
     * not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotWindbarbAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock) Formatter function to use instead of the default
     * for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotWindbarbConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotWindbarbConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotWindbarbConnectorsOptions {
    /**
     * (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?: PlotWindbarbConnectorsEndMarkerOptions;
    /**
     * (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?: PlotWindbarbConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotWindbarbConnectorsStartMarkerOptions;
    /**
     * (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 PlotWindbarbConnectorsStartMarkerOptions {
    /**
     * (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) 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) 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.
 */
export interface PlotWindbarbDataGroupingOptions {
    /**
     * (Highcharts, Highstock) Approximation function for the data grouping. The
     * default returns an average of wind speed and a vector average direction
     * weighted by wind speed.
     */
    approximation?: (string|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;
    /**
     * (Highcharts, Highstock) Whether to enable 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;
    /**
     * (Highcharts, Highstock) The approximate data group width.
     */
    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) 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 PlotWindbarbEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the series is hidden after chart
     * generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotWindbarbLabelOptions {
    /**
     * (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) 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 PlotWindbarbLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotWindbarbLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotWindbarbLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotWindbarbLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotWindbarbAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotWindbarbAnimationOptions);
    /**
     * (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, 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) 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 (see online
     * documentation for example) 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?: PlotWindbarbConnectorsOptions;
    /**
     * (Highcharts, Highstock, Gantt) When true, each 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) 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?: PlotWindbarbDataGroupingOptions;
    /**
     * (Highcharts, Highstock) 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?: any;
    /**
     * (Highcharts) Depth of the columns in a 3D column chart. Requires
     * `highcharts-3d.js`.
     */
    depth?: number;
    /**
     * (Highcharts, Highstock) Requires the Accessibility module.
     *
     * 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?: PlotWindbarbEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    groupZPadding?: number;
    /**
     * (Highcharts, Highstock) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotWindbarbLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotWindbarbLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotWindbarbLastVisiblePriceOptions;
    /**
     * (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.
     */
    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.
     */
    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?: PlotWindbarbPointOptions;
    /**
     * (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.
     */
    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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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?: PlotWindbarbStatesOptions;
    /**
     * (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.
     */
    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;
    /**
     * (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?: PlotWindbarbTooltipOptions;
    /**
     * (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.
     */
    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<PlotWindbarbZonesOptions>;
}
/**
 * (Highcharts, Highstock) Events for each single point.
 */
export interface PlotWindbarbPointEventsOptions {
    /**
     * (Highcharts, Highstock) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) 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) 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;
    /**
     * (Highcharts, Highstock) 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;
    /**
     * (Highcharts, Highstock) 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) 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;
}
/**
 * (Highcharts, Highstock) Properties for each single point.
 */
export interface PlotWindbarbPointOptions {
    /**
     * (Highcharts, Highstock) Events for each single point.
     */
    events?: PlotWindbarbPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotWindbarbStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotWindbarbStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotWindbarbStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
    lineWidthPlus?: number;
}
/**
 * (Highcharts, Highstock) The animation for entering the inactive state.
 */
export interface PlotWindbarbStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock) The opposite state of a hover for series.
 */
export interface PlotWindbarbStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotWindbarbStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock) Opacity of series elements (dataLabels, line,
     * area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, 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 PlotWindbarbStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotWindbarbStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotWindbarbStatesHoverOptions;
    /**
     * (Highcharts, Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotWindbarbStatesInactiveOptions;
    /**
     * (Highcharts, 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?: PlotWindbarbStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotWindbarbStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotWindbarbStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotWindbarbStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotWindbarbStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotWindbarbTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotWindbarbTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotWindbarbTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, 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;
    /**
     * (Highcharts, Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, 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, Highstock) 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) The number of milliseconds to wait until the
     * tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock) The HTML of the null point's line in the tooltip.
     * Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock) Callback function to format the text of the
     * tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock) The default point format for the wind barb
     * tooltip. Note the `point.beaufort` property that refers to the Beaufort
     * wind scale. The names can be internationalized by modifying
     * `Highcharts.seriesTypes.windbarb.prototype.beaufortNames`.
     */
    pointFormat?: string;
    /**
     * (Highcharts, 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>;
    /**
     * (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) 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) A string to prepend to each series' y value.
     * Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, 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) 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 PlotWindbarbZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotWmaAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotWmaAccessibilityOptions {
    /**
     * (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?: (object|PlotWmaAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotWmaConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotWmaConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotWmaConnectorsOptions {
    /**
     * (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?: PlotWmaConnectorsEndMarkerOptions;
    /**
     * (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?: PlotWmaConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotWmaConnectorsStartMarkerOptions;
    /**
     * (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 PlotWmaConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotWmaDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotWmaEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotWmaLabelOptions {
    /**
     * (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) 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 PlotWmaLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotWmaLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotWmaLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotWmaLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotWmaMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotWmaMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotWmaMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotWmaMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotWmaMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotWmaMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotWmaMarkerStatesHoverOptions;
    inactive?: PlotWmaMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotWmaMarkerStatesNormalOptions;
    /**
     * (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?: PlotWmaMarkerStatesSelectOptions;
}
/**
 * (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 PlotWmaMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotWmaAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotWmaAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotWmaConnectorsOptions;
    /**
     * (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 name for 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?: PlotWmaDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotWmaEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotWmaLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotWmaLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotWmaLastVisiblePriceOptions;
    /**
     * (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?: PlotWmaMarkerOptions;
    /**
     * (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.
     */
    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?: PlotWmaPointOptions;
    /**
     * (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?: PlotWmaStatesOptions;
    /**
     * (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.
     */
    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?: PlotWmaTooltipOptions;
    /**
     * (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.
     */
    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<PlotWmaZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotWmaPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotWmaPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotWmaPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotWmaStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotWmaStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotWmaStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotWmaStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotWmaStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotWmaStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotWmaStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotWmaStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotWmaStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotWmaStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotWmaStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotWmaStatesInactiveOptions;
    /**
     * (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?: PlotWmaStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotWmaStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotWmaStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotWmaStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotWmaStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotWmaStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotWmaStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotWmaTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotWmaTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotWmaTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotWmaZonesOptions {
    /**
     * (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;
}
/**
 * (Highcharts) Keyboard navigation for a series
 */
export interface PlotWordcloudAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotWordcloudAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highcharts) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotWordcloudAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotWordcloudConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotWordcloudConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotWordcloudConnectorsOptions {
    /**
     * (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?: PlotWordcloudConnectorsEndMarkerOptions;
    /**
     * (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?: PlotWordcloudConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotWordcloudConnectorsStartMarkerOptions;
    /**
     * (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 PlotWordcloudConnectorsStartMarkerOptions {
    /**
     * (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) 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) 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 PlotWordcloudEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotWordcloudLabelOptions {
    /**
     * (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) 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 PlotWordcloudLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotWordcloudLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotWordcloudLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotWordcloudLastVisiblePriceLabelOptions;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotWordcloudAccessibilityOptions);
    /**
     * (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:
     *
     * - `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?: PlotWordcloudAnimationOptions;
    /**
     * (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, 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) 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 (see online
     * documentation for example) 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?: PlotWordcloudConnectorsOptions;
    /**
     * (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) Requires the Accessibility module.
     *
     * 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?: PlotWordcloudEventsOptions;
    /**
     * (Highcharts) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotWordcloudLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotWordcloudLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotWordcloudLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotWordcloudPointOptions;
    /**
     * (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?: PlotWordcloudStatesOptions;
    /**
     * (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.
     */
    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?: PlotWordcloudTooltipOptions;
    /**
     * (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.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Events for each single point.
 */
export interface PlotWordcloudPointEventsOptions {
    /**
     * (Highcharts) 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) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) 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) 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) 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;
    /**
     * (Highcharts) 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;
    /**
     * (Highcharts) 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) 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;
}
/**
 * (Highcharts) Properties for each single point.
 */
export interface PlotWordcloudPointOptions {
    /**
     * (Highcharts) Events for each single point.
     */
    events?: PlotWordcloudPointEventsOptions;
}
/**
 * (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) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotWordcloudStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotWordcloudStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotWordcloudStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) The animation for entering the inactive state.
 */
export interface PlotWordcloudStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts) The opposite state of a hover for series.
 */
export interface PlotWordcloudStatesInactiveOptions {
    /**
     * (Highcharts) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotWordcloudStatesInactiveAnimationOptions);
    /**
     * (Highcharts) Opacity of series elements (dataLabels, line, area). Set to
     * 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts) 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 PlotWordcloudStatesNormalOptions {
    /**
     * (Highcharts) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotWordcloudStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotWordcloudStatesHoverOptions;
    /**
     * (Highcharts) The opposite state of a hover for series.
     */
    inactive?: PlotWordcloudStatesInactiveOptions;
    /**
     * (Highcharts) 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?: PlotWordcloudStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotWordcloudStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotWordcloudStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotWordcloudStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotWordcloudStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotWordcloudTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotWordcloudTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotWordcloudTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts) 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) 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) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts) 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 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) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts) 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) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts) 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) 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) 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) 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) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts) 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) Keyboard navigation for a series
 */
export interface PlotXrangeAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock, Gantt) Enable/disable keyboard navigation support
     * for a specific series.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Accessibility options for a series. Requires
 * the accessibility module.
 */
export interface PlotXrangeAccessibilityOptions {
    /**
     * (Highcharts, Highstock, Gantt) Provide a description of the series,
     * announced to screen readers.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Gantt) Enable/disable accessibility functionality
     * for a specific series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Expose only the series element to screen
     * readers, not its points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Keyboard navigation for a series
     */
    keyboardNavigation?: (object|PlotXrangeAccessibilityKeyboardNavigationOptions);
    /**
     * (Highcharts, Highstock, Gantt) Formatter function to use instead of the
     * default for point descriptions. Same as
     * `accessibility.pointDescriptionFormatter`, but for a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotXrangeConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotXrangeConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotXrangeConnectorsOptions {
    /**
     * (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?: PlotXrangeConnectorsEndMarkerOptions;
    /**
     * (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?: PlotXrangeConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotXrangeConnectorsStartMarkerOptions;
    /**
     * (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 PlotXrangeConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotXrangeDataGroupingOptions {
    /**
     * (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?: (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. Defaults to `10`.
     */
    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) Options for the drag handles.
 */
export interface PlotXrangeDragDropDragHandleOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock, Gantt) Style options for the guide box default state.
 */
export interface PlotXrangeDragDropGuideBoxDefaultOptions {
    /**
     * (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) 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?: PlotXrangeDragDropGuideBoxDefaultOptions;
}
/**
 * (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.
 *
 * It requires the `modules/draggable-points.js` file to be loaded.
 */
export interface PlotXrangeDragDropOptions {
    /**
     * (Highcharts, Highstock, Gantt) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Allow x value to be dragged individually.
     * Requires `draggable-points` module.
     */
    draggableX1?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Allow x2 value to be dragged individually.
     * Requires `draggable-points` module.
     */
    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?: PlotXrangeDragDropDragHandleOptions;
    /**
     * (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?: (PlotXrangeDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (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, 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.
 */
export interface PlotXrangeEventsOptions {
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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?: SeriesCheckboxClickCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) Fires when the series is hidden after
     * chart generation time, either by clicking the legend item or by calling
     * `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) Fires when the mouse enters the graph. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) Fires when the series is shown after chart
     * generation time, either by clicking the legend item or by calling
     * `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotXrangeLabelOptions {
    /**
     * (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) 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 PlotXrangeLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotXrangeLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotXrangeLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotXrangeLastVisiblePriceLabelOptions;
}
/**
 * (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.
     * Requires the accessibility module.
     */
    accessibility?: (object|PlotXrangeAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotXrangeAnimationOptions);
    /**
     * (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) Sets the color blending in the boost
     * module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (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) 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 (see online
     * documentation for example) 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?: PlotXrangeConnectorsOptions;
    /**
     * (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);
    /**
     * (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?: PlotXrangeDataGroupingOptions;
    /**
     * (Highcharts, Highstock, 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?: any;
    /**
     * (Highcharts, Highstock, Gantt) Requires the Accessibility module.
     *
     * 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.
     *
     * It requires the `modules/draggable-points.js` file to be loaded.
     */
    dragDrop?: PlotXrangeDragDropOptions;
    /**
     * (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?: PlotXrangeEventsOptions;
    /**
     * (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.
     * Requires `highcharts-3d.js`.
     */
    groupZPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotXrangeLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotXrangeLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotXrangeLastVisiblePriceOptions;
    /**
     * (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.
     */
    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?: PlotXrangePointOptions;
    /**
     * (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. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`.
     */
    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?: PlotXrangeStatesOptions;
    /**
     * (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.
     */
    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?: PlotXrangeTooltipOptions;
    /**
     * (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.
     */
    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<PlotXrangeZonesOptions>;
}
/**
 * (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);
}
/**
 * (Highcharts, Highstock, Gantt) Events for each single point.
 */
export interface PlotXrangePointEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (Highcharts, Highstock, Gantt) Properties for each single point.
 */
export interface PlotXrangePointOptions {
    /**
     * (Highcharts, Highstock, Gantt) Events for each single point.
     */
    events?: PlotXrangePointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotXrangeStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the hovered point. These settings
 * override the normal state options when a point is moused over or touched.
 */
export interface PlotXrangeStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotXrangeStatesHoverAnimationOptions);
    /**
     * (Highcharts, Gantt) A specific border color for the hovered point.
     * Defaults to inherit the normal state border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) How much to brighten the point on
     * interaction. Requires the main color to be defined in hex or rgb(a)
     * format.
     *
     * In styled mode, the hover brightening is by default replaced with a
     * fill-opacity set in the `.highcharts-point:hover` rule.
     */
    brightness?: number;
    /**
     * (Highcharts, Gantt) A specific color for the hovered point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) The animation for entering the inactive state.
 */
export interface PlotXrangeStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) The opposite state of a hover for series.
 */
export interface PlotXrangeStatesInactiveOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation for entering the inactive
     * state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotXrangeStatesInactiveAnimationOptions);
    /**
     * (Highcharts, Highstock, Gantt) Opacity of series elements (dataLabels,
     * line, area). Set to 1 to disable inactive state.
     */
    opacity?: number;
}
/**
 * (Highcharts, Highstock, Gantt) 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 PlotXrangeStatesNormalOptions {
    /**
     * (Highcharts, Highstock, Gantt) Animation when returning to normal state
     * after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotXrangeStatesOptions {
    /**
     * (Highcharts, Highstock, Gantt) Options for the hovered point. These
     * settings override the normal state options when a point is moused over or
     * touched.
     */
    hover?: PlotXrangeStatesHoverOptions;
    /**
     * (Highcharts, Highstock, Gantt) The opposite state of a hover for series.
     */
    inactive?: PlotXrangeStatesInactiveOptions;
    /**
     * (Highcharts, Highstock, Gantt) 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?: PlotXrangeStatesNormalOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for the selected point. These
     * settings override the normal state options when a point is selected.
     */
    select?: PlotXrangeStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotXrangeStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the selected point. These settings
 * override the normal state options when a point is selected.
 */
export interface PlotXrangeStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotXrangeStatesSelectAnimationOptions;
    /**
     * (Highcharts, Highstock, Gantt) A specific border color for the selected
     * point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A specific color for the selected point.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Enable separate styles for the hovered
     * series to visualize that the user hovers either the series itself or the
     * legend.
     */
    enabled?: boolean;
}
/**
 * (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.
 */
export interface PlotXrangeTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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.
 */
export interface PlotXrangeTooltipOptions {
    /**
     * (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, Gantt) A CSS class name to apply to the tooltip's
     * container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotXrangeTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    distance?: number;
    /**
     * (Highcharts, Highstock, 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, 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, Gantt) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, Highstock, 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, 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, Gantt) The number of milliseconds to wait until
     * the tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock, Gantt) The HTML of the null point's line in the
     * tooltip. Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock, Gantt) Callback function to format the text of
     * the tooltip for visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, 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, Gantt) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, 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, 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) 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, 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, Gantt) A string to prepend to each series' y
     * value. Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, Highstock, 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;
}
/**
 * (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 PlotXrangeZonesOptions {
    /**
     * (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;
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface PlotZigzagAccessibilityKeyboardNavigationOptions {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series. Requires the accessibility
 * module.
 */
export interface PlotZigzagAccessibilityOptions {
    /**
     * (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?: (object|PlotZigzagAccessibilityKeyboardNavigationOptions);
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.pointDescriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: Function;
}
/**
 * (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:
 *
 * - `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 {
    duration?: number;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface PlotZigzagConnectorsEndMarkerOptions {
    /**
     * (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) 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 PlotZigzagConnectorsMarkerOptions {
    /**
     * (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) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface PlotZigzagConnectorsOptions {
    /**
     * (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?: PlotZigzagConnectorsEndMarkerOptions;
    /**
     * (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?: PlotZigzagConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: PlotZigzagConnectorsStartMarkerOptions;
    /**
     * (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 PlotZigzagConnectorsStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (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.
 */
export interface PlotZigzagDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
/**
 * (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 PlotZigzagEventsOptions {
    /**
     * (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?: 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;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (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`.
 *
 * Requires the `series-label.js` module.
 */
export interface PlotZigzagLabelOptions {
    /**
     * (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) 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 PlotZigzagLastPriceOptions {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface PlotZigzagLastVisiblePriceLabelOptions {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface PlotZigzagLastVisiblePriceOptions {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: PlotZigzagLastVisiblePriceLabelOptions;
}
/**
 * (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.
 */
export interface PlotZigzagMarkerOptions {
    /**
     * (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;
    /**
     * (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;
    /**
     * (Highstock) The fill color of the point marker. When `undefined`, the
     * series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highstock) States for a single point marker.
     */
    states?: PlotZigzagMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highstock) Image markers only. Set the image width explicitly. When
     * using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highstock) The hover state for a single point marker.
 */
export interface PlotZigzagMarkerStatesHoverOptions {
    /**
     * (Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (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);
    /**
     * (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);
    /**
     * (Highstock) The width of the point marker's outline. When `undefined`,
     * the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * (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;
    /**
     * (Highstock) The number of pixels to increase the radius of the hovered
     * point.
     */
    radiusPlus?: number;
}
export interface PlotZigzagMarkerStatesInactiveOptions {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a single point marker. Currently only used
 * for setting animation when returning to normal state from hover.
 */
export interface PlotZigzagMarkerStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highstock) States for a single point marker.
 */
export interface PlotZigzagMarkerStatesOptions {
    /**
     * (Highstock) The hover state for a single point marker.
     */
    hover?: PlotZigzagMarkerStatesHoverOptions;
    inactive?: PlotZigzagMarkerStatesInactiveOptions;
    /**
     * (Highstock) The normal state of a single point marker. Currently only
     * used for setting animation when returning to normal state from hover.
     */
    normal?: PlotZigzagMarkerStatesNormalOptions;
    /**
     * (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?: PlotZigzagMarkerStatesSelectOptions;
}
/**
 * (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 PlotZigzagMarkerStatesSelectOptions {
    /**
     * (Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the point marker's outline. When `undefined`,
     * the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highstock) The radius of the point marker. In hover state, it defaults
     * to the normal state's radius + 2.
     */
    radius?: number;
}
/**
 * (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. Requires the
     * accessibility module.
     */
    accessibility?: (object|PlotZigzagAccessibilityOptions);
    /**
     * (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:
     *
     * - `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|AnimationOptionsObject|PlotZigzagAnimationOptions);
    /**
     * (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.
     *
     * Requires `modules/boost.js`.
     */
    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 (see online
     * documentation for example) 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?: PlotZigzagConnectorsOptions;
    /**
     * (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 name for 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?: PlotZigzagDataGroupingOptions;
    /**
     * (Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highstock) Requires the Accessibility module.
     *
     * 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?: PlotZigzagEventsOptions;
    /**
     * (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 five 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) Export-data module required. 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`.
     *
     * Requires the `series-label.js` module.
     */
    label?: PlotZigzagLabelOptions;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: PlotZigzagLastPriceOptions;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: PlotZigzagLastVisiblePriceOptions;
    /**
     * (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?: PlotZigzagMarkerOptions;
    /**
     * (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.
     */
    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?: PlotZigzagPointOptions;
    /**
     * (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?: PlotZigzagStatesOptions;
    /**
     * (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.
     */
    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?: PlotZigzagTooltipOptions;
    /**
     * (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.
     */
    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<PlotZigzagZonesOptions>;
}
/**
 * (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;
}
/**
 * (Highstock) Events for each single point.
 */
export interface PlotZigzagPointEventsOptions {
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highstock) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotZigzagPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PlotZigzagPointEventsOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotZigzagStatesHoverAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotZigzagStatesHoverHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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 PlotZigzagStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|AnimationOptionsObject|PlotZigzagStatesHoverAnimationOptions);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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;
    /**
     * (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?: (PlotZigzagStatesHoverHaloOptions|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) The animation for entering the inactive state.
 */
export interface PlotZigzagStatesInactiveAnimationOptions {
    duration?: number;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface PlotZigzagStatesInactiveOptions {
    /**
     * (Highstock) The animation for entering the inactive state.
     */
    animation?: (boolean|AnimationOptionsObject|PlotZigzagStatesInactiveAnimationOptions);
    /**
     * (Highstock) Opacity of series elements (dataLabels, line, area). Set to 1
     * to disable inactive state.
     */
    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 PlotZigzagStatesNormalOptions {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
export interface PlotZigzagStatesOptions {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: PlotZigzagStatesHoverOptions;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: PlotZigzagStatesInactiveOptions;
    /**
     * (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?: PlotZigzagStatesNormalOptions;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: PlotZigzagStatesSelectOptions;
}
/**
 * (Highcharts, Highstock) Animation setting for hovering the graph in line-type
 * series.
 */
export interface PlotZigzagStatesSelectAnimationOptions {
    /**
     * (Highcharts, Highstock) The duration of the hover animation in
     * milliseconds. By default the hover state animates quickly in, and slowly
     * back to normal.
     */
    duration?: number;
}
/**
 * (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 PlotZigzagStatesSelectHaloOptions {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: SVGAttributes;
    /**
     * (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) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface PlotZigzagStatesSelectOptions {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: PlotZigzagStatesSelectAnimationOptions;
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (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?: (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?: (PlotZigzagStatesSelectHaloOptions|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;
}
/**
 * (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.
 */
export interface PlotZigzagTooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
/**
 * (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 PlotZigzagTooltipOptions {
    /**
     * (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) A CSS class name to apply to the tooltip's container div,
     * allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (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?: (PlotZigzagTooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The number of milliseconds to wait until the tooltip is
     * hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (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) 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);
    /**
     * (Highstock) Padding inside the tooltip, in pixels.
     */
    padding?: number;
    /**
     * (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>;
    /**
     * (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;
    /**
     * (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) 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 PlotZigzagZonesOptions {
    /**
     * (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;
}
/**
 * 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;
}
/**
 * Events for each single point.
 */
export interface PointEventsOptionsObject {
    /**
     * 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;
    /**
     * 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;
    /**
     * 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;
    /**
     * 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;
    /**
     * 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.
     */
    point: Point;
    /**
     * The related series.
     */
    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";
}
export interface PointMarkerOptionsObject {
    /**
     * 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;
    /**
     * 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;
    /**
     * The fill color of the point marker. When `undefined`, the series' or
     * point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * Image markers only. Set the image width explicitly. When using this
     * option, a `width` must also be set.
     */
    height?: number;
    /**
     * The color of the point marker's outline. When `undefined`, the series' or
     * point's color is used.
     */
    lineColor?: ColorString;
    /**
     * The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * The radius of the point marker.
     */
    radius?: number;
    /**
     * States for a single point marker.
     */
    states?: PointStatesOptionsObject;
    /**
     * 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`.
     */
    symbol?: string;
    /**
     * Image markers only. Set the image width explicitly. When using this
     * option, a `height` must also be set.
     */
    width?: number;
}
/**
 * States for a single point marker.
 */
export interface PointMarkerStatesOptionsObject {
    /**
     * The hover state for a single point marker.
     */
    hover: PointStatesHoverOptionsObject;
    inactive: PointStatesInactiveOptionsObject;
    /**
     * The normal state of a single point marker. Currently only used for
     * setting animation when returning to normal state from hover.
     */
    normal: PointStatesNormalOptionsObject;
    /**
     * 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;
}
/**
 * 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 {
    /**
     * An additional, individual class name for the data point's graphic
     * representation.
     */
    className?: string;
    /**
     * 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);
    /**
     * 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;
    /**
     * 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
     * Highcharts.PointOptionsObject#color.
     */
    dashStyle?: DashStyleValue;
    /**
     * Individual data labels for each point.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * The id of a series in the drilldown.series array to use for a drilldown
     * for this point.
     */
    drilldown?: string;
    /**
     * The individual point events.
     */
    events?: PointEventsOptionsObject;
    /**
     * 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;
    /**
     * 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;
    /**
     * The sequential index of the data point in the legend.
     */
    legendIndex?: number;
    /**
     * Options for the point markers of line-like series.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * The name of the point as shown in the legend, tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * A pixel value specifying a fixed width for the column or bar. Overrides
     * pointWidth on the series.
     */
    pointWidth?: number;
    /**
     * Whether the data point is selected initially.
     */
    selected?: boolean;
    /**
     * Pie series only. Whether to display a slice offset from the center.
     */
    sliced?: boolean;
    /**
     * The x value of the point. For datetime axes, the X value is the timestamp
     * in milliseconds since 1970.
     */
    x?: number;
    /**
     * The y value of the point.
     */
    y?: (number|null);
}
/**
 * The hover state for a single point marker.
 */
export interface PointStatesHoverOptionsObject {
    /**
     * Animation when hovering over the point marker.
     */
    animation: (boolean|AnimationOptionsObject);
    /**
     * Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * 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);
    /**
     * 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);
    /**
     * The width of the point marker's outline. When `undefined`, the series' or
     * point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * The additional line width for a hovered point.
     */
    lineWidthPlus?: number;
    /**
     * 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;
    /**
     * The number of pixels to increase the radius of the hovered point.
     */
    radiusPlus?: number;
}
export interface PointStatesInactiveOptionsObject {
    /**
     * Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * The normal state of a single point marker. Currently only used for setting
 * animation when returning to normal state from hover.
 */
export interface PointStatesNormalOptionsObject {
    /**
     * Animation when returning to normal state after hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * States for a single point marker.
 */
export interface PointStatesOptionsObject {
    /**
     * The hover state for a single point marker.
     */
    hover?: PointStatesHoverOptionsObject;
    /**
     * The hover state for a single point marker.
     */
    inactive?: PointStatesInactiveOptionsObject;
    /**
     * The hover state for a single point marker.
     */
    normal?: PointStatesNormalOptionsObject;
    /**
     * The hover state for a single point marker.
     */
    select?: PointStatesSelectOptionsObject;
}
/**
 * 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 {
    /**
     * Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * The color of the point marker's outline. When `undefined`, the series' or
     * point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * The radius of the point marker. In hover state, it defaults to the normal
     * state's radius + 2.
     */
    radius?: number;
}
/**
 * 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;
}
/**
 * (Highstock) A custom data grouping object for each button.
 */
export interface RangeSelectorButtonsDataGroupingOptions {
    /**
     * (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?: (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)]>;
}
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?: RangeSelectorButtonsDataGroupingOptions;
    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.
     */
    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, or 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;
    step?: number;
    /**
     * (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) 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";
}
export interface SeriesAreaDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesAreaDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesAreaDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesAreaDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesAreaDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesAreaDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesAreaDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesAreaDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesAreaDataMarkerOptions {
    /**
     * (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, 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?: (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?: SeriesAreaDataMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface SeriesAreaDataMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface SeriesAreaDataMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 SeriesAreaDataMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface SeriesAreaDataMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: SeriesAreaDataMarkerStatesHoverOptions;
    inactive?: SeriesAreaDataMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: SeriesAreaDataMarkerStatesNormalOptions;
    /**
     * (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?: SeriesAreaDataMarkerStatesSelectOptions;
}
/**
 * (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 SeriesAreaDataMarkerStatesSelectOptions {
    /**
     * (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, 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, 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)
 */
export interface SeriesAreaDataOptions {
    accessibility?: SeriesAreaDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesAreaDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesAreaDataEventsOptions;
    /**
     * (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) 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. 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?: SeriesAreaDataMarkerOptions;
    /**
     * (Highcharts, Highstock) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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, 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|SeriesAreaDataOptions)>;
    /**
     * 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;
}
export interface SeriesArearangeDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesArearangeDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesArearangeDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesArearangeDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesArearangeDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesArearangeDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesArearangeDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesArearangeDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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 extends DataLabelsOptionsObject {
    /**
     * (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) 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) 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)
 */
export interface SeriesArearangeDataOptions {
    accessibility?: SeriesArearangeDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Individual data label for each point. The options
     * are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (SeriesAreaRangeDataLabelsOptionsObject|Array<SeriesAreaRangeDataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesArearangeDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesArearangeDataEventsOptions;
    /**
     * (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, Highstock) 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) The low or minimum value for each data point.
     */
    low?: number;
    /**
     * (Highcharts, Highstock) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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) 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]|SeriesArearangeDataOptions)>;
    /**
     * 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";
}
export interface SeriesAreasplineDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesAreasplineDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesAreasplineDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesAreasplineDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesAreasplineDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesAreasplineDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesAreasplineDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesAreasplineDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesAreasplineDataMarkerOptions {
    /**
     * (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, 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?: (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?: SeriesAreasplineDataMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface SeriesAreasplineDataMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface SeriesAreasplineDataMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 SeriesAreasplineDataMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface SeriesAreasplineDataMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: SeriesAreasplineDataMarkerStatesHoverOptions;
    inactive?: SeriesAreasplineDataMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: SeriesAreasplineDataMarkerStatesNormalOptions;
    /**
     * (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?: SeriesAreasplineDataMarkerStatesSelectOptions;
}
/**
 * (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 SeriesAreasplineDataMarkerStatesSelectOptions {
    /**
     * (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, 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, 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)
 */
export interface SeriesAreasplineDataOptions {
    accessibility?: SeriesAreasplineDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesAreasplineDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesAreasplineDataEventsOptions;
    /**
     * (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) 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. 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?: SeriesAreasplineDataMarkerOptions;
    /**
     * (Highcharts, Highstock) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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, 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|SeriesAreasplineDataOptions)>;
    /**
     * 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";
}
export interface SeriesAreasplinerangeDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesAreasplinerangeDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesAreasplinerangeDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesAreasplinerangeDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesAreasplinerangeDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesAreasplinerangeDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesAreasplinerangeDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesAreasplinerangeDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesAreasplinerangeDataOptions {
    accessibility?: SeriesAreasplinerangeDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Individual data label for each point. The options
     * are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (SeriesAreaRangeDataLabelsOptionsObject|Array<SeriesAreaRangeDataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesAreasplinerangeDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesAreasplinerangeDataEventsOptions;
    /**
     * (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, Highstock) 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) The low or minimum value for each data point.
     */
    low?: number;
    /**
     * (Highcharts, Highstock) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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) 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]|SeriesAreasplinerangeDataOptions)>;
    /**
     * 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";
}
export interface SeriesBarDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesBarDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesBarDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesBarDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesBarDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesBarDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesBarDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesBarDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesBarDataOptions {
    accessibility?: SeriesBarDataAccessibilityOptions;
    /**
     * (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, 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;
    /**
     * (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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesBarDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesBarDataEventsOptions;
    /**
     * (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, Highstock, Gantt) A pixel value specifying a fixed width for
     * the column or bar. Overrides pointWidth on the series.
     */
    pointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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) 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|SeriesBarDataOptions)>;
    /**
     * 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";
}
export interface SeriesBoxplotDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesBoxplotDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesBoxplotDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesBoxplotDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesBoxplotDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesBoxplotDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesBoxplotDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesBoxplotDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesBoxplotDataOptions {
    accessibility?: SeriesBoxplotDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesBoxplotDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesBoxplotDataEventsOptions;
    /**
     * (Highcharts) The `high` value for each data point, signifying the highest
     * value in the sample set. The top whisker is drawn here.
     */
    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 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 `low` value for each data point, signifying the lowest
     * value in the sample set. The bottom whisker is drawn here.
     */
    low?: number;
    /**
     * (Highcharts) The median for each data point. This is drawn as a line
     * through the middle area of the box.
     */
    median?: number;
    /**
     * (Highcharts) The name of the point as shown in the legend, tooltip,
     * dataLabels etc.
     */
    name?: string;
    /**
     * (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, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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) 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]|SeriesBoxplotDataOptions)>;
    /**
     * 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";
}
export interface SeriesBubbleDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesBubbleDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesBubbleDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesBubbleDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesBubbleDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesBubbleDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesBubbleDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesBubbleDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesBubbleDataOptions {
    accessibility?: SeriesBubbleDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesBubbleDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesBubbleDataEventsOptions;
    /**
     * (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, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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 size value for each bubble. The bubbles' diameters are
     * computed based on the `z`, and controlled by series options like
     * `minSize`, `maxSize`, `sizeBy`, `zMin` and `zMax`.
     */
    z?: (number|null);
}
/**
 * (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]|SeriesBubbleDataOptions)>;
    /**
     * 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";
}
export interface SeriesBulletDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesBulletDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesBulletDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesBulletDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesBulletDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesBulletDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesBulletDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesBulletDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesBulletDataOptions {
    accessibility?: SeriesBulletDataAccessibilityOptions;
    /**
     * (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, 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;
    /**
     * (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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesBulletDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesBulletDataEventsOptions;
    /**
     * (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, Highstock, Gantt) A pixel value specifying a fixed width for
     * the column or bar. Overrides pointWidth on the series.
     */
    pointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts) The target value of a point.
     */
    target?: number;
    /**
     * (Highcharts) Individual target options for each point.
     */
    targetOptions?: SeriesBulletDataTargetOptions;
    /**
     * (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) 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]|SeriesBulletDataOptions)>;
    /**
     * 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";
}
export interface SeriesCandlestickDataAccessibilityOptions {
    /**
     * (Highstock) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highstock) Options for the drag handles.
 */
export interface SeriesCandlestickDataDragDropDragHandleOptions {
    /**
     * (Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highstock) Style options for the guide box default state.
 */
export interface SeriesCandlestickDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highstock) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesCandlestickDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highstock) Point specific options for the draggable-points module. Overrides
 * options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesCandlestickDataDragDropOptions {
    /**
     * (Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highstock) Enable dragging in the Y dimension. Note that this is not
     * supported for TreeGrid axes (the default axis type in Gantt charts).
     */
    draggableY?: boolean;
    /**
     * (Highstock) Options for the drag handles.
     */
    dragHandle?: SeriesCandlestickDataDragDropDragHandleOptions;
    /**
     * (Highstock) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highstock) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highstock) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highstock) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) Group the points by a property. Points with the same property
     * value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highstock) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesCandlestickDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highstock) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesCandlestickDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesCandlestickDataOptions {
    accessibility?: SeriesCandlestickDataAccessibilityOptions;
    /**
     * (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, Highstock) Individual data label for each point. The options
     * are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (SeriesAreaRangeDataLabelsOptionsObject|Array<SeriesAreaRangeDataLabelsOptionsObject>);
    /**
     * (Highstock) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highstock) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesCandlestickDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesCandlestickDataEventsOptions;
    /**
     * (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;
    /**
     * (Highstock) 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) The low or minimum value for each data point.
     */
    low?: number;
    /**
     * (Highstock) The name of the point as shown in the legend, tooltip,
     * dataLabels etc.
     */
    name?: string;
    /**
     * (Highstock) The opening value of each data point.
     */
    open?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) The x value of the point. For datetime axes, the
     * X value is the timestamp in milliseconds since 1970.
     */
    x?: number;
}
/**
 * (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]|SeriesCandlestickDataOptions)>;
    /**
     * 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";
}
export interface SeriesColumnDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesColumnDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesColumnDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesColumnDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesColumnDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesColumnDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesColumnDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesColumnDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesColumnDataOptions {
    accessibility?: SeriesColumnDataAccessibilityOptions;
    /**
     * (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, 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;
    /**
     * (Highcharts, Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesColumnDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesColumnDataEventsOptions;
    /**
     * (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) 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) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * the column or bar. Overrides pointWidth on the series.
     */
    pointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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, 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|SeriesColumnDataOptions)>;
    /**
     * 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";
}
export interface SeriesColumnpyramidDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesColumnpyramidDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesColumnpyramidDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesColumnpyramidDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesColumnpyramidDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesColumnpyramidDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesColumnpyramidDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesColumnpyramidDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesColumnpyramidDataOptions {
    accessibility?: SeriesColumnpyramidDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesColumnpyramidDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesColumnpyramidDataEventsOptions;
    /**
     * (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) 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) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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, 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|SeriesColumnpyramidDataOptions)>;
    /**
     * 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";
}
export interface SeriesColumnrangeDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesColumnrangeDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesColumnrangeDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesColumnrangeDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesColumnrangeDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesColumnrangeDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesColumnrangeDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesColumnrangeDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesColumnrangeDataOptions {
    accessibility?: SeriesColumnrangeDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Individual data label for each point. The options
     * are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (SeriesAreaRangeDataLabelsOptionsObject|Array<SeriesAreaRangeDataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesColumnrangeDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesColumnrangeDataEventsOptions;
    /**
     * (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, Highstock) 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) The low or minimum value for each data point.
     */
    low?: number;
    /**
     * (Highcharts, Highstock) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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) 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]|SeriesColumnrangeDataOptions)>;
    /**
     * 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";
}
export interface SeriesCylinderDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesCylinderDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesCylinderDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesCylinderDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesCylinderDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesCylinderDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesCylinderDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesCylinderDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesCylinderDataOptions {
    accessibility?: SeriesCylinderDataAccessibilityOptions;
    /**
     * (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, 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;
    /**
     * (Highcharts, Highstock) 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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesCylinderDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesCylinderDataEventsOptions;
    /**
     * (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) 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) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * the column or bar. Overrides pointWidth on the series.
     */
    pointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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) 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|SeriesCylinderDataOptions)>;
    /**
     * (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";
}
export interface SeriesDependencywheelDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesDependencywheelDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesDependencywheelDataOptions {
    accessibility?: SeriesDependencywheelDataAccessibilityOptions;
    /**
     * (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 description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesDependencywheelDataEventsOptions;
    /**
     * (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, 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) 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`.
 */
export interface SeriesDependencywheelNodesOptions {
    /**
     * (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) Individual data label for each node. The options are the
     * same as the ones for series.dependencywheel.dataLabels.
     */
    dataLabels?: (SeriesSankeyDataLabelsOptionsObject|Array<SeriesSankeyDataLabelsOptionsObject>);
    /**
     * (Highcharts) The id of the auto-generated node, refering to the `from` or
     * `to` setting of the link.
     */
    id?: string;
    /**
     * (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) 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 {
    /**
     * Not available
     */
    borderRadius?: undefined;
    /**
     * Not available
     */
    crisp?: undefined;
    /**
     * (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<SeriesDependencywheelDataOptions>;
    /**
     * 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;
    /**
     * Not available
     */
    minPointLength?: undefined;
    /**
     * (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<SeriesDependencywheelNodesOptions>;
    /**
     * 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: "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";
}
/**
 * (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";
}
export interface SeriesErrorbarDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesErrorbarDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesErrorbarDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: SeriesErrorbarDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesErrorbarDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesErrorbarDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesErrorbarDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesErrorbarDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesErrorbarDataOptions {
    accessibility?: SeriesErrorbarDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesErrorbarDataDragDropOptions;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesErrorbarDataEventsOptions;
    /**
     * (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 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) The low or minimum value for each data point.
     */
    low?: number;
    /**
     * (Highcharts) The name of the point as shown in the legend, tooltip,
     * dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) The x value of the point. For datetime axes, the
     * X value is the timestamp in milliseconds since 1970.
     */
    x?: number;
}
/**
 * (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]|SeriesErrorbarDataOptions)>;
    /**
     * 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";
}
export interface SeriesFlagsDataAccessibilityOptions {
    /**
     * (Highstock) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highstock) Options for the drag handles.
 */
export interface SeriesFlagsDataDragDropDragHandleOptions {
    /**
     * (Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highstock) Style options for the guide box default state.
 */
export interface SeriesFlagsDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highstock) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highstock) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: SeriesFlagsDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highstock) Point specific options for the draggable-points module. Overrides
 * options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesFlagsDataDragDropOptions {
    /**
     * (Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highstock) Enable dragging in the Y dimension. Note that this is not
     * supported for TreeGrid axes (the default axis type in Gantt charts).
     */
    draggableY?: boolean;
    /**
     * (Highstock) Options for the drag handles.
     */
    dragHandle?: SeriesFlagsDataDragDropDragHandleOptions;
    /**
     * (Highstock) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highstock) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highstock) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highstock) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) Group the points by a property. Points with the same property
     * value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highstock) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesFlagsDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highstock) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesFlagsDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesFlagsDataOptions {
    accessibility?: SeriesFlagsDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highstock) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highstock) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesFlagsDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesFlagsDataEventsOptions;
    /**
     * (Highstock) The fill color of an individual flag. By default it inherits
     * from the series color.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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;
    /**
     * (Highstock) 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, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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, Highstock) The x value of the point. For datetime axes, the
     * X value is the timestamp in milliseconds since 1970.
     */
    x?: number;
}
/**
 * (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 {
    /**
     * (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<SeriesFlagsDataOptions>;
    /**
     * 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: "flags";
}
export interface SeriesFunnel3dDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesFunnel3dDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesFunnel3dDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesFunnel3dDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: SeriesFunnel3dDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesFunnel3dDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesFunnel3dDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesFunnel3dDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesFunnel3dDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (Highcharts) An array of data points for the series. For the `funnel3d`
 * 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 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 SeriesFunnel3dDataOptions {
    accessibility?: SeriesFunnel3dDataAccessibilityOptions;
    /**
     * (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, 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;
    /**
     * (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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesFunnel3dDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesFunnel3dDataEventsOptions;
    /**
     * (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) 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, Highstock, Gantt) A pixel value specifying a fixed width for
     * the column or bar. Overrides pointWidth on the series.
     */
    pointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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) 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 {
    /**
     * (Highcharts) An array of data points for the series. For the `funnel3d`
     * 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 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|Array<number>|SeriesFunnel3dDataOptions)>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "funnel3d";
}
export interface SeriesFunnelDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesFunnelDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesFunnelDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesFunnelDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesFunnelDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesFunnelDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesFunnelDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesFunnelDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesFunnelDataOptions {
    accessibility?: SeriesFunnelDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts) Individual data label for each point. The options are the
     * same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: SeriesPieDataLabelsOptionsObject;
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesFunnelDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesFunnelDataEventsOptions;
    /**
     * (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 sequential index of the data point in the legend.
     */
    legendIndex?: number;
    /**
     * (Highcharts) The name of the point as shown in the legend, tooltip,
     * dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) The y value of the point.
     */
    y?: (number|null);
}
/**
 * (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|SeriesFunnelDataOptions)>;
    /**
     * 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;
}
export interface SeriesGanttDataAccessibilityOptions {
    /**
     * (Gantt) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Gantt) Progress indicator, how much of the task completed. If it is a
 * number, the `fill` will be applied automatically.
 */
export interface SeriesGanttDataCompletedOptions {
    /**
     * (Highcharts, Highstock, Gantt) The amount of the progress indicator,
     * ranging from 0 (not started) to 1 (finished).
     */
    amount?: number;
    /**
     * (Highcharts, Highstock, Gantt) The fill of the progress indicator.
     * Defaults to a darkened variety of the main color.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface SeriesGanttDataDependencyEndMarkerOptions {
    /**
     * (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) 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 SeriesGanttDataDependencyMarkerOptions {
    /**
     * (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 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.
 */
export interface SeriesGanttDataDependencyOptions {
    /**
     * (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?: SeriesGanttDataDependencyEndMarkerOptions;
    /**
     * (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?: SeriesGanttDataDependencyMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: SeriesGanttDataDependencyStartMarkerOptions;
    /**
     * (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;
}
/**
 * (Gantt) Marker options specific to the start markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface SeriesGanttDataDependencyStartMarkerOptions {
    /**
     * (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) 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;
}
/**
 * (Gantt) Options for the drag handles.
 */
export interface SeriesGanttDataDragDropDragHandleOptions {
    /**
     * (Gantt) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Gantt) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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;
    /**
     * (Gantt) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Gantt) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (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;
    /**
     * (Gantt) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Gantt) Style options for the guide box default state.
 */
export interface SeriesGanttDataDragDropGuideBoxDefaultOptions {
    /**
     * (Gantt) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Gantt) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Gantt) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Gantt) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Gantt) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Gantt) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (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?: SeriesGanttDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Gantt) Point specific options for the draggable-points module. Overrides
 * options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesGanttDataDragDropOptions {
    /**
     * (Gantt) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (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;
    /**
     * (Gantt) Options for the drag handles.
     */
    dragHandle?: SeriesGanttDataDragDropDragHandleOptions;
    /**
     * (Gantt) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Gantt) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Gantt) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Gantt) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (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;
    /**
     * (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;
    /**
     * (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;
    /**
     * (Gantt) Group the points by a property. Points with the same property
     * value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Gantt) Style options for the guide box. The guide box has one state by
     * default, the `default` state.
     */
    guideBox?: (SeriesGanttDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Gantt) Update points as they are dragged. If false, a guide box is drawn
     * to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (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.
 */
export interface SeriesGanttDataMarkerOptions {
    /**
     * (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, 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?: (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?: SeriesGanttDataMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface SeriesGanttDataMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface SeriesGanttDataMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 SeriesGanttDataMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface SeriesGanttDataMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: SeriesGanttDataMarkerStatesHoverOptions;
    inactive?: SeriesGanttDataMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: SeriesGanttDataMarkerStatesNormalOptions;
    /**
     * (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?: SeriesGanttDataMarkerStatesSelectOptions;
}
/**
 * (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 SeriesGanttDataMarkerStatesSelectOptions {
    /**
     * (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, 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;
}
/**
 * (Gantt) Data for a Gantt series.
 */
export interface SeriesGanttDataOptions {
    accessibility?: SeriesGanttDataAccessibilityOptions;
    /**
     * (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|SeriesGanttDataCompletedOptions);
    /**
     * (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|SeriesGanttDataDependencyOptions|Array<(string|SeriesGanttDataDependencyOptions)>);
    /**
     * (Gantt) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Gantt) Point specific options for the draggable-points module. Overrides
     * options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesGanttDataDragDropOptions;
    /**
     * (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;
    /**
     * (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. 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?: SeriesGanttDataMarkerOptions;
    /**
     * (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;
}
/**
 * (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<SeriesGanttDataOptions>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "gantt";
}
export interface SeriesGaugeDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesGaugeDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesGaugeDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesGaugeDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesGaugeDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesGaugeDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesGaugeDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesGaugeDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesGaugeDataOptions {
    accessibility?: SeriesGaugeDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesGaugeDataDragDropOptions;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesGaugeDataEventsOptions;
    /**
     * (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, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) The y value of the point.
     */
    y?: (number|null);
}
/**
 * (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|SeriesGaugeDataOptions)>;
    /**
     * 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";
}
export interface SeriesHeatmapDataAccessibilityOptions {
    /**
     * (Highcharts, Highmaps) Provide a description of the data point, announced
     * to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highmaps) Options for the drag handles.
 */
export interface SeriesHeatmapDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highmaps) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) 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, Highmaps) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highmaps) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highmaps) Style options for the guide box default state.
 */
export interface SeriesHeatmapDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highmaps) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highmaps) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highmaps) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highmaps) Guide box zIndex.
     */
    zIndex?: 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?: SeriesHeatmapDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highmaps) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesHeatmapDataDragDropOptions {
    /**
     * (Highcharts, Highmaps) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) Options for the drag handles.
     */
    dragHandle?: SeriesHeatmapDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highmaps) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highmaps) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highmaps) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highmaps) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) 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, Highmaps) 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, Highmaps) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highmaps) Style options for the guide box. The guide box has
     * one state by default, the `default` state.
     */
    guideBox?: (SeriesHeatmapDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highmaps) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesHeatmapDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesHeatmapDataOptions {
    accessibility?: SeriesHeatmapDataAccessibilityOptions;
    /**
     * (Highcharts, Gantt) An additional, individual class name for the data
     * point's graphic representation.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) The color of the point. In heat maps the point
     * color is rarely set explicitly, as we use the color to denote the
     * `value`. Options for this are set in the colorAxis configuration.
     */
    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, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highmaps) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highmaps) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesHeatmapDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesHeatmapDataEventsOptions;
    /**
     * (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, Highmaps) 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, Highmaps) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highmaps) Point padding for a single point.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highmaps) The value of the point, resulting in a color
     * controled by options as set in the colorAxis configuration.
     */
    value?: number;
    /**
     * (Highcharts, Highmaps) The x value of the point. For datetime axes, the X
     * value is the timestamp in milliseconds since 1970.
     */
    x?: number;
    /**
     * (Highcharts, Highmaps) The y value of the point.
     */
    y?: number;
}
/**
 * (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>|SeriesHeatmapDataOptions)>;
    /**
     * 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";
}
export interface SeriesItemDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesItemDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesItemDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesItemDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesItemDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesItemDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesItemDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesItemDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesItemDataOptions {
    accessibility?: SeriesItemDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts) Individual data label for each point. The options are the
     * same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: SeriesPieDataLabelsOptionsObject;
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesItemDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesItemDataEventsOptions;
    /**
     * (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 sequential index of the data point in the legend.
     */
    legendIndex?: number;
    /**
     * (Highcharts) The name of the point as shown in the legend, tooltip,
     * dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to display a slice offset from the center.
     */
    sliced?: boolean;
    /**
     * (Highcharts, Highstock) The y value of the point.
     */
    y?: (number|null);
}
/**
 * (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|SeriesItemDataOptions)>;
    /**
     * 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";
}
/**
 * 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";
}
export interface SeriesLineDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesLineDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesLineDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesLineDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesLineDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesLineDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesLineDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesLineDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesLineDataMarkerOptions {
    /**
     * (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, 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?: (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?: SeriesLineDataMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface SeriesLineDataMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface SeriesLineDataMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 SeriesLineDataMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface SeriesLineDataMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: SeriesLineDataMarkerStatesHoverOptions;
    inactive?: SeriesLineDataMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: SeriesLineDataMarkerStatesNormalOptions;
    /**
     * (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?: SeriesLineDataMarkerStatesSelectOptions;
}
/**
 * (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 SeriesLineDataMarkerStatesSelectOptions {
    /**
     * (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, 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, 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)
 */
export interface SeriesLineDataOptions {
    accessibility?: SeriesLineDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    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) Individual point events
     */
    events?: SeriesLineDataEventsOptions;
    /**
     * (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) 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. 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?: SeriesLineDataMarkerOptions;
    /**
     * (Highcharts, Highstock) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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, 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)
     */
    data?: Array<(number|[(number|string), (number|null)]|null|SeriesLineDataOptions)>;
    /**
     * 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";
}
/**
 * (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) Individual point events
 */
export interface SeriesMapbubbleDataEventsOptions {
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
}
/**
 * (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?: DataLabelsOptionsObject;
    /**
     * (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?: SeriesMapbubbleDataEventsOptions;
    /**
     * (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) Individual point events
 */
export interface SeriesMapDataEventsOptions {
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
}
/**
 * (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?: DataLabelsOptionsObject;
    /**
     * (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?: SeriesMapDataEventsOptions;
    /**
     * (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) Individual point events
 */
export interface SeriesMappointDataEventsOptions {
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highmaps) 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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
    /**
     * (Highmaps) 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;
}
/**
 * (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?: DataLabelsOptionsObject;
    /**
     * (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?: SeriesMappointDataEventsOptions;
    /**
     * (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";
}
export interface SeriesNetworkgraphDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesNetworkgraphDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesNetworkgraphDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesNetworkgraphDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesNetworkgraphDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesNetworkgraphDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesNetworkgraphDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesNetworkgraphDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * Context for the formatter function.
 */
export interface SeriesNetworkgraphDataLabelsFormatterContextObject extends DataLabelsFormatterContextObject {
    /**
     * 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;
}
/**
 * Data labels options
 */
export interface SeriesNetworkgraphDataLabelsOptionsObject extends DataLabelsOptionsObject {
    /**
     * 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;
    /**
     * 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;
    /**
     * The format string specifying what to show for _links_ in the
     * networkgraph. (Default: `undefined`)
     */
    linkFormat?: string;
    /**
     * Callback to format data labels for _links_ in the sankey diagram. The
     * `linkFormat` option takes precedence over the `linkFormatter`.
     */
    linkFormatter?: SeriesNetworkgraphDataLabelsFormatterCallbackFunction;
    /**
     * 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) 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)
 */
export interface SeriesNetworkgraphDataOptions {
    accessibility?: SeriesNetworkgraphDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts) Individual data label for each point. The options are the
     * same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (SeriesNetworkgraphDataLabelsOptionsObject|Array<SeriesNetworkgraphDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesNetworkgraphDataDragDropOptions;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesNetworkgraphDataEventsOptions;
    /**
     * (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, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts) The node that the link runs to.
     */
    to?: string;
}
/**
 * (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?: (SeriesNetworkgraphDataOptions|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;
}
export interface SeriesOhlcDataAccessibilityOptions {
    /**
     * (Highstock) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highstock) Options for the drag handles.
 */
export interface SeriesOhlcDataDragDropDragHandleOptions {
    /**
     * (Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highstock) Style options for the guide box default state.
 */
export interface SeriesOhlcDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highstock) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesOhlcDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highstock) Point specific options for the draggable-points module. Overrides
 * options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesOhlcDataDragDropOptions {
    /**
     * (Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highstock) Enable dragging in the Y dimension. Note that this is not
     * supported for TreeGrid axes (the default axis type in Gantt charts).
     */
    draggableY?: boolean;
    /**
     * (Highstock) Options for the drag handles.
     */
    dragHandle?: SeriesOhlcDataDragDropDragHandleOptions;
    /**
     * (Highstock) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highstock) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highstock) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highstock) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) 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;
    /**
     * (Highstock) Group the points by a property. Points with the same property
     * value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highstock) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesOhlcDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highstock) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesOhlcDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesOhlcDataOptions {
    accessibility?: SeriesOhlcDataAccessibilityOptions;
    /**
     * (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, Highstock) Individual data label for each point. The options
     * are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (SeriesAreaRangeDataLabelsOptionsObject|Array<SeriesAreaRangeDataLabelsOptionsObject>);
    /**
     * (Highstock) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highstock) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesOhlcDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesOhlcDataEventsOptions;
    /**
     * (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;
    /**
     * (Highstock) 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) The low or minimum value for each data point.
     */
    low?: number;
    /**
     * (Highstock) The name of the point as shown in the legend, tooltip,
     * dataLabels etc.
     */
    name?: string;
    /**
     * (Highstock) The opening value of each data point.
     */
    open?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) The x value of the point. For datetime axes, the
     * X value is the timestamp in milliseconds since 1970.
     */
    x?: number;
}
/**
 * (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]|SeriesOhlcDataOptions)>;
    /**
     * 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;
}
export interface SeriesOrganizationDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesOrganizationDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
export interface SeriesOrganizationDataLabelsOptionsObject extends SeriesSankeyDataLabelsOptionsObject {
    /**
     * 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) 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)
 */
export interface SeriesOrganizationDataOptions {
    accessibility?: SeriesOrganizationDataAccessibilityOptions;
    /**
     * (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) Individual data label for each point. The options are the
     * same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (SeriesOrganizationDataLabelsOptionsObject|Array<SeriesOrganizationDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesOrganizationDataEventsOptions;
    /**
     * (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) 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`.
 */
export interface SeriesOrganizationNodesOptions {
    /**
     * (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) Individual data label for each node. The options are the
     * same as the ones for series.organization.dataLabels.
     */
    dataLabels?: (SeriesOrganizationDataLabelsOptionsObject|Array<SeriesOrganizationDataLabelsOptionsObject>);
    /**
     * (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) 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 {
    /**
     * Not available
     */
    curveFactor?: undefined;
    /**
     * (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<SeriesOrganizationDataOptions>;
    /**
     * (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<SeriesOrganizationNodesOptions>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "organization";
}
export interface SeriesPackedbubbleDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesPackedbubbleDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesPackedbubbleDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesPackedbubbleDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesPackedbubbleDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesPackedbubbleDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesPackedbubbleDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesPackedbubbleDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * Context for the formatter function.
 */
export interface SeriesPackedBubbleDataLabelsFormatterContextObject extends DataLabelsFormatterContextObject {
    /**
     * 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;
}
/**
 * Data labels options
 */
export interface SeriesPackedBubbleDataLabelsOptionsObject extends DataLabelsOptionsObject {
    /**
     * 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;
    /**
     * 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;
    parentNodeFormat?: string;
    /**
     * Callback to format data labels for _parentNodes_. The `parentNodeFormat`
     * option takes precedence over the `parentNodeFormatter`.
     */
    parentNodeFormatter?: FormatterCallbackFunction<DataLabelsFormatterContextObject>;
    /**
     * Options for a _parentNode_ label text.
     */
    parentNodeTextPath?: SeriesPackedBubbleDataLabelsTextPathOptionsObject;
    /**
     * Options for a _node_ label text which should follow marker's shape.
     * **Note:** Only SVG-based renderer supports this option.
     */
    textPath?: SeriesPackedBubbleDataLabelsTextPathOptionsObject;
}
/**
 * **Note:** Only SVG-based renderer supports this option.
 */
export interface SeriesPackedBubbleDataLabelsTextPathOptionsObject {
    /**
     * Presentation attributes for the text path.
     */
    attributes?: SVGAttributes;
    /**
     * Enable or disable `textPath` option for link's or marker's data labels.
     */
    enabled?: boolean;
}
/**
 * (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)
 */
export interface SeriesPackedbubbleDataOptions {
    accessibility?: SeriesPackedbubbleDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts) Individual data label for each point. The options are the
     * same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (SeriesPackedBubbleDataLabelsOptionsObject|Array<SeriesPackedBubbleDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesPackedbubbleDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesPackedbubbleDataEventsOptions;
    /**
     * (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, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
}
/**
 * (Highcharts, Highstock) 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?: (SeriesPackedbubbleDataOptions|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";
}
export interface SeriesParetoDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesParetoDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesParetoDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesParetoDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesParetoDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesParetoDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesParetoDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesParetoDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (Highcharts) An array of data points for the series. For the `pareto` series
 * type, points are calculated dynamically.
 */
export interface SeriesParetoDataOptions {
    accessibility?: SeriesParetoDataAccessibilityOptions;
    /**
     * (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, 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;
    /**
     * (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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesParetoDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesParetoDataEventsOptions;
    /**
     * (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, Highstock, Gantt) A pixel value specifying a fixed width for
     * the column or bar. Overrides pointWidth on the series.
     */
    pointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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) 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)>|SeriesParetoDataOptions)>;
    /**
     * 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";
}
export interface SeriesPieDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesPieDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesPieDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesPieDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesPieDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesPieDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesPieDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesPieDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * 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.
 */
export interface SeriesPieDataLabelsOptionsObject extends DataLabelsOptionsObject {
    /**
     * (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) 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) 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;
    /**
     * (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) 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)
 */
export interface SeriesPieDataOptions {
    accessibility?: SeriesPieDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts) Individual data label for each point. The options are the
     * same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: SeriesPieDataLabelsOptionsObject;
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesPieDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesPieDataEventsOptions;
    /**
     * (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 sequential index of the data point in the legend.
     */
    legendIndex?: number;
    /**
     * (Highcharts) The name of the point as shown in the legend, tooltip,
     * dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to display a slice offset from the center.
     */
    sliced?: boolean;
    /**
     * (Highcharts, Highstock) The y value of the point.
     */
    y?: (number|null);
}
/**
 * (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|SeriesPieDataOptions)>;
    /**
     * 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;
}
export interface SeriesPolygonDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesPolygonDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesPolygonDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesPolygonDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesPolygonDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesPolygonDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesPolygonDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesPolygonDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesPolygonDataMarkerOptions {
    /**
     * (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, 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?: (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?: SeriesPolygonDataMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface SeriesPolygonDataMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface SeriesPolygonDataMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 SeriesPolygonDataMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface SeriesPolygonDataMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: SeriesPolygonDataMarkerStatesHoverOptions;
    inactive?: SeriesPolygonDataMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: SeriesPolygonDataMarkerStatesNormalOptions;
    /**
     * (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?: SeriesPolygonDataMarkerStatesSelectOptions;
}
/**
 * (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 SeriesPolygonDataMarkerStatesSelectOptions {
    /**
     * (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, 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, 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)
 */
export interface SeriesPolygonDataOptions {
    accessibility?: SeriesPolygonDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesPolygonDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesPolygonDataEventsOptions;
    /**
     * (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) 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. 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?: SeriesPolygonDataMarkerOptions;
    /**
     * (Highcharts, Highstock) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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, 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|SeriesPolygonDataOptions)>;
    /**
     * 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";
}
export interface SeriesPyramid3dDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesPyramid3dDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesPyramid3dDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesPyramid3dDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: SeriesPyramid3dDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesPyramid3dDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesPyramid3dDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesPyramid3dDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesPyramid3dDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (Highcharts) An array of data points for the series. For the `pyramid3d`
 * 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 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 SeriesPyramid3dDataOptions {
    accessibility?: SeriesPyramid3dDataAccessibilityOptions;
    /**
     * (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, 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;
    /**
     * (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?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesPyramid3dDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesPyramid3dDataEventsOptions;
    /**
     * (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) 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, Highstock, Gantt) A pixel value specifying a fixed width for
     * the column or bar. Overrides pointWidth on the series.
     */
    pointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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) 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 {
    /**
     * (Highcharts) An array of data points for the series. For the `pyramid3d`
     * 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 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|Array<number>|SeriesPyramid3dDataOptions)>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "pyramid3d";
}
export interface SeriesPyramidDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesPyramidDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesPyramidDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesPyramidDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesPyramidDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesPyramidDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesPyramidDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesPyramidDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesPyramidDataOptions {
    accessibility?: SeriesPyramidDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts) Individual data label for each point. The options are the
     * same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: SeriesPieDataLabelsOptionsObject;
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesPyramidDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesPyramidDataEventsOptions;
    /**
     * (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 sequential index of the data point in the legend.
     */
    legendIndex?: number;
    /**
     * (Highcharts) The name of the point as shown in the legend, tooltip,
     * dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) The y value of the point.
     */
    y?: (number|null);
}
/**
 * (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|SeriesPyramidDataOptions)>;
    /**
     * 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";
}
export interface SeriesSankeyDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesSankeyDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * Context for the node formatter function.
 */
export interface SeriesSankeyDataLabelsFormatterContextObject extends DataLabelsFormatterContextObject {
    /**
     * The node object. The node name, if defined, is available through
     * `this.point.name`.
     */
    point: SankeyNodeObject;
}
/**
 * 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.
 */
export interface SeriesSankeyDataLabelsOptionsObject extends DataLabelsOptionsObject {
    /**
     * The format string specifying what to show for _nodes_ in the sankey
     * diagram. By default the `nodeFormatter` returns `{point.name}`.
     */
    nodeFormat?: string;
    /**
     * Callback to format data labels for _nodes_ in the sankey diagram. The
     * `nodeFormat` option takes precedence over the `nodeFormatter`.
     */
    nodeFormatter?: SeriesSankeyDataLabelsFormatterCallbackFunction;
}
/**
 * (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 SeriesSankeyDataOptions {
    accessibility?: SeriesSankeyDataAccessibilityOptions;
    /**
     * (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) Individual data label for each point. The options are the
     * same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (SeriesSankeyDataLabelsOptionsObject|Array<SeriesSankeyDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesSankeyDataEventsOptions;
    /**
     * (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) 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 SeriesSankeyNodesOptions {
    /**
     * (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) Individual data label for each node. The options are the
     * same as the ones for series.sankey.dataLabels.
     */
    dataLabels?: (SeriesSankeyDataLabelsOptionsObject|Array<SeriesSankeyDataLabelsOptionsObject>);
    /**
     * (Highcharts) The id of the auto-generated node, refering to the `from` or
     * `to` setting of the link.
     */
    id?: string;
    /**
     * (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) 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;
    /**
     * Not available
     */
    crisp?: 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<SeriesSankeyDataOptions>;
    /**
     * 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<SeriesSankeyNodesOptions>;
    /**
     * 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";
}
export interface SeriesScatter3dDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesScatter3dDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesScatter3dDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesScatter3dDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesScatter3dDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesScatter3dDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesScatter3dDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesScatter3dDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesScatter3dDataMarkerOptions {
    /**
     * (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, 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?: (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?: SeriesScatter3dDataMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface SeriesScatter3dDataMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface SeriesScatter3dDataMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 SeriesScatter3dDataMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface SeriesScatter3dDataMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: SeriesScatter3dDataMarkerStatesHoverOptions;
    inactive?: SeriesScatter3dDataMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: SeriesScatter3dDataMarkerStatesNormalOptions;
    /**
     * (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?: SeriesScatter3dDataMarkerStatesSelectOptions;
}
/**
 * (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 SeriesScatter3dDataMarkerStatesSelectOptions {
    /**
     * (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, 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) 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)
 */
export interface SeriesScatter3dDataOptions {
    accessibility?: SeriesScatter3dDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesScatter3dDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesScatter3dDataEventsOptions;
    /**
     * (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, 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?: SeriesScatter3dDataMarkerOptions;
    /**
     * (Highcharts) The name of the point as shown in the legend, tooltip,
     * dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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 z value for each data point.
     */
    z?: number;
}
/**
 * (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>|SeriesScatter3dDataOptions)>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "scatter3d";
}
export interface SeriesScatterDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesScatterDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesScatterDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesScatterDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesScatterDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesScatterDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesScatterDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesScatterDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesScatterDataMarkerOptions {
    /**
     * (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, 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?: (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?: SeriesScatterDataMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface SeriesScatterDataMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface SeriesScatterDataMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 SeriesScatterDataMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface SeriesScatterDataMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: SeriesScatterDataMarkerStatesHoverOptions;
    inactive?: SeriesScatterDataMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: SeriesScatterDataMarkerStatesNormalOptions;
    /**
     * (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?: SeriesScatterDataMarkerStatesSelectOptions;
}
/**
 * (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 SeriesScatterDataMarkerStatesSelectOptions {
    /**
     * (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, 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, 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)
 */
export interface SeriesScatterDataOptions {
    accessibility?: SeriesScatterDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesScatterDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesScatterDataEventsOptions;
    /**
     * (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) 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. 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?: SeriesScatterDataMarkerOptions;
    /**
     * (Highcharts, Highstock) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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, 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|SeriesScatterDataOptions)>;
    /**
     * 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 `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;
}
export interface SeriesSolidgaugeDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesSolidgaugeDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesSolidgaugeDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesSolidgaugeDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesSolidgaugeDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesSolidgaugeDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesSolidgaugeDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesSolidgaugeDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesSolidgaugeDataOptions {
    accessibility?: SeriesSolidgaugeDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesSolidgaugeDataDragDropOptions;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesSolidgaugeDataEventsOptions;
    /**
     * (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) 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) 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, Highstock) The y value of the point.
     */
    y?: (number|null);
}
/**
 * (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|SeriesSolidgaugeDataOptions)>;
    /**
     * 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;
}
export interface SeriesSplineDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesSplineDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesSplineDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesSplineDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesSplineDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesSplineDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesSplineDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesSplineDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesSplineDataMarkerOptions {
    /**
     * (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, 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?: (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?: SeriesSplineDataMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface SeriesSplineDataMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface SeriesSplineDataMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 SeriesSplineDataMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface SeriesSplineDataMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: SeriesSplineDataMarkerStatesHoverOptions;
    inactive?: SeriesSplineDataMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: SeriesSplineDataMarkerStatesNormalOptions;
    /**
     * (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?: SeriesSplineDataMarkerStatesSelectOptions;
}
/**
 * (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 SeriesSplineDataMarkerStatesSelectOptions {
    /**
     * (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, 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, 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)
 */
export interface SeriesSplineDataOptions {
    accessibility?: SeriesSplineDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesSplineDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesSplineDataEventsOptions;
    /**
     * (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) 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. 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?: SeriesSplineDataMarkerOptions;
    /**
     * (Highcharts, Highstock) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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, 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|SeriesSplineDataOptions)>;
    /**
     * 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";
}
/**
 * (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";
}
export interface SeriesStreamgraphDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesStreamgraphDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesStreamgraphDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesStreamgraphDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesStreamgraphDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesStreamgraphDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesStreamgraphDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesStreamgraphDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesStreamgraphDataMarkerOptions {
    /**
     * (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, 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?: (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?: SeriesStreamgraphDataMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface SeriesStreamgraphDataMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface SeriesStreamgraphDataMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 SeriesStreamgraphDataMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface SeriesStreamgraphDataMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: SeriesStreamgraphDataMarkerStatesHoverOptions;
    inactive?: SeriesStreamgraphDataMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: SeriesStreamgraphDataMarkerStatesNormalOptions;
    /**
     * (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?: SeriesStreamgraphDataMarkerStatesSelectOptions;
}
/**
 * (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 SeriesStreamgraphDataMarkerStatesSelectOptions {
    /**
     * (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, 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, 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)
 */
export interface SeriesStreamgraphDataOptions {
    accessibility?: SeriesStreamgraphDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesStreamgraphDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesStreamgraphDataEventsOptions;
    /**
     * (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) 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. 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?: SeriesStreamgraphDataMarkerOptions;
    /**
     * (Highcharts, Highstock) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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, 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|SeriesStreamgraphDataOptions)>;
    /**
     * 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";
}
export interface SeriesSunburstDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesSunburstDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesSunburstDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesSunburstDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesSunburstDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesSunburstDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesSunburstDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesSunburstDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * Options for data labels in the sunburst series.
 */
export interface SeriesSunburstDataLabelsOptionsObject extends DataLabelsOptionsObject {
    align: undefined;
    allowOverlap: undefined;
    /**
     * Decides how the data label will be rotated relative to the perimeter of
     * the sunburst. Valid values are `auto`, `parallel` and `perpendicular`.
     * When `auto`, the best fit will be computed for the point.
     *
     * The `series.rotation` option takes precedence over `rotationMode`.
     */
    rotationMode?: SeriesSunburstDataLabelsRotationValue;
}
/**
 * (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)
 */
export interface SeriesSunburstDataOptions {
    accessibility?: SeriesSunburstDataAccessibilityOptions;
    /**
     * (Highcharts, Gantt) An additional, individual class name for the data
     * point's graphic representation.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) The color of the point. In heat maps the point
     * color is rarely set explicitly, as we use the color to denote the
     * `value`. Options for this are set in the colorAxis configuration.
     */
    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) Individual data label for each point. The options are the
     * same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (SeriesSunburstDataLabelsOptionsObject|Array<SeriesSunburstDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesSunburstDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesSunburstDataEventsOptions;
    /**
     * (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 decides the text for a word.
     */
    name?: string;
    /**
     * (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) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to display a slice offset from the center. When a
     * sunburst point is sliced, its children are also offset.
     */
    sliced?: boolean;
    /**
     * (Highcharts) The value of the point, resulting in a relative area of the
     * point in the sunburst.
     */
    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) 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|SeriesSunburstDataOptions)>;
    /**
     * 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";
}
export interface SeriesTilemapDataAccessibilityOptions {
    /**
     * (Highcharts, Highmaps) Provide a description of the data point, announced
     * to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highmaps) Options for the drag handles.
 */
export interface SeriesTilemapDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highmaps) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) 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, Highmaps) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highmaps) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highmaps) Style options for the guide box default state.
 */
export interface SeriesTilemapDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highmaps) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highmaps) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highmaps) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highmaps) Guide box zIndex.
     */
    zIndex?: 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?: SeriesTilemapDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highmaps) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesTilemapDataDragDropOptions {
    /**
     * (Highcharts, Highmaps) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) Options for the drag handles.
     */
    dragHandle?: SeriesTilemapDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highmaps) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highmaps) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highmaps) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highmaps) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highmaps) 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, Highmaps) 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, Highmaps) 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, Highmaps) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highmaps) Style options for the guide box. The guide box has
     * one state by default, the `default` state.
     */
    guideBox?: (SeriesTilemapDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highmaps) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesTilemapDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesTilemapDataOptions {
    accessibility?: SeriesTilemapDataAccessibilityOptions;
    /**
     * (Highcharts, Gantt) An additional, individual class name for the data
     * point's graphic representation.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) The color of the point. In tilemaps the point
     * color is rarely set explicitly, as we use the color to denote the
     * `value`. Options for this are set in the colorAxis configuration.
     */
    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, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highmaps) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highmaps) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesTilemapDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesTilemapDataEventsOptions;
    /**
     * (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, Highmaps) 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, Highmaps) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highmaps) Point padding for a single point.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highmaps) The value of the point, resulting in a color
     * controled by options as set in the colorAxis configuration.
     */
    value?: number;
    /**
     * (Highcharts, Highmaps) The x coordinate of the point.
     *
     * Note that for some tileShapes the grid coordinates are offset.
     */
    x?: number;
    /**
     * (Highcharts, Highmaps) The y coordinate of the point.
     *
     * Note that for some tileShapes the grid coordinates are offset.
     */
    y?: number;
}
/**
 * (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]|SeriesTilemapDataOptions)>;
    /**
     * 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";
}
export interface SeriesTimelineDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesTimelineDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesTimelineDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesTimelineDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesTimelineDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesTimelineDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesTimelineDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesTimelineDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesTimelineDataOptions {
    accessibility?: SeriesTimelineDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) The description of event. This description will be shown in
     * tooltip.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesTimelineDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesTimelineDataEventsOptions;
    /**
     * (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 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 name of event.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) The x value of the point. For datetime axes, the
     * X value is the timestamp in milliseconds since 1970.
     */
    x?: number;
}
/**
 * (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<SeriesTimelineDataOptions>;
    /**
     * 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";
}
export interface SeriesTreemapDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesTreemapDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesTreemapDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesTreemapDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesTreemapDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesTreemapDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesTreemapDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesTreemapDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesTreemapDataOptions {
    accessibility?: SeriesTreemapDataAccessibilityOptions;
    /**
     * (Highcharts, Gantt) An additional, individual class name for the data
     * point's graphic representation.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) The color of the point. In heat maps the point
     * color is rarely set explicitly, as we use the color to denote the
     * `value`. Options for this are set in the colorAxis configuration.
     */
    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, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesTreemapDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesTreemapDataEventsOptions;
    /**
     * (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) 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) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts) The value of the point, resulting in a relative area of the
     * point in the treemap.
     */
    value?: (number|null);
}
/**
 * (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|SeriesTreemapDataOptions)>;
    /**
     * 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";
}
export interface SeriesVariablepieDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesVariablepieDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesVariablepieDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesVariablepieDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesVariablepieDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesVariablepieDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesVariablepieDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesVariablepieDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesVariablepieDataOptions {
    accessibility?: SeriesVariablepieDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts) Individual data label for each point. The options are the
     * same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: SeriesPieDataLabelsOptionsObject;
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesVariablepieDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesVariablepieDataEventsOptions;
    /**
     * (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 sequential index of the data point in the legend.
     */
    legendIndex?: number;
    /**
     * (Highcharts) The name of the point as shown in the legend, tooltip,
     * dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to display a slice offset from the center.
     */
    sliced?: boolean;
    /**
     * (Highcharts, Highstock) The y value of the point.
     */
    y?: (number|null);
}
/**
 * (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]|SeriesVariablepieDataOptions)>;
    /**
     * 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;
}
export interface SeriesVariwideDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesVariwideDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesVariwideDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesVariwideDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesVariwideDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesVariwideDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesVariwideDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesVariwideDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesVariwideDataOptions {
    accessibility?: SeriesVariwideDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesVariwideDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesVariwideDataEventsOptions;
    /**
     * (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, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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;
}
/**
 * (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 {
    /**
     * Not available
     */
    crisp?: undefined;
    /**
     * (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]|SeriesVariwideDataOptions)>;
    /**
     * Not available
     */
    depth?: undefined;
    /**
     * Not available
     */
    edgeColor?: undefined;
    /**
     * Not available
     */
    edgeWidth?: undefined;
    /**
     * Not available
     */
    groupZPadding?: undefined;
    /**
     * (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";
}
export interface SeriesVectorDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesVectorDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesVectorDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesVectorDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesVectorDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesVectorDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesVectorDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesVectorDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesVectorDataMarkerOptions {
    /**
     * (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, 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?: (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?: SeriesVectorDataMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface SeriesVectorDataMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface SeriesVectorDataMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 SeriesVectorDataMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface SeriesVectorDataMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: SeriesVectorDataMarkerStatesHoverOptions;
    inactive?: SeriesVectorDataMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: SeriesVectorDataMarkerStatesNormalOptions;
    /**
     * (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?: SeriesVectorDataMarkerStatesSelectOptions;
}
/**
 * (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 SeriesVectorDataMarkerStatesSelectOptions {
    /**
     * (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, 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, 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)
 */
export interface SeriesVectorDataOptions {
    accessibility?: SeriesVectorDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The vector direction in degrees, where 0 is north
     * (pointing towards south).
     */
    direction?: number;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesVectorDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesVectorDataEventsOptions;
    /**
     * (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) 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) The length of the vector. The rendered length
     * will relate to the `vectorLength` setting.
     */
    length?: number;
    /**
     * (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?: SeriesVectorDataMarkerOptions;
    /**
     * (Highcharts, Highstock) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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, 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]|SeriesVectorDataOptions)>;
    /**
     * 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";
}
export interface SeriesVennDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesVennDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesVennDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesVennDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesVennDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesVennDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesVennDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesVennDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesVennDataOptions {
    accessibility?: SeriesVennDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesVennDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesVennDataEventsOptions;
    /**
     * (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. Used in data labels and tooltip. If
     * name is not defined then it will default to the joined values in sets.
     */
    name?: number;
    /**
     * (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) The value of the point, resulting in a relative area of the
     * circle, or area of overlap between two sets in the venn or euler diagram.
     */
    value?: number;
}
/**
 * (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<SeriesVennDataOptions>;
    /**
     * 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";
}
export interface SeriesWaterfallDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesWaterfallDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesWaterfallDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesWaterfallDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesWaterfallDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesWaterfallDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesWaterfallDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesWaterfallDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesWaterfallDataOptions {
    accessibility?: SeriesWaterfallDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesWaterfallDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesWaterfallDataEventsOptions;
    /**
     * (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) 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 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, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (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) 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|SeriesWaterfallDataOptions)>;
    /**
     * 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";
}
export interface SeriesWindbarbDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock) Options for the drag handles.
 */
export interface SeriesWindbarbDataDragDropDragHandleOptions {
    /**
     * (Highcharts, Highstock) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box default state.
 */
export interface SeriesWindbarbDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts, Highstock) CSS class name of the guide box in this state.
     * Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) Guide box zIndex.
     */
    zIndex?: 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?: SeriesWindbarbDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock) Point specific options for the draggable-points
 * module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesWindbarbDataDragDropOptions {
    /**
     * (Highcharts, Highstock) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock) 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) Options for the drag handles.
     */
    dragHandle?: SeriesWindbarbDataDragDropDragHandleOptions;
    /**
     * (Highcharts, Highstock) Set the maximum X value the points can be moved
     * to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock) Set the maximum Y value the points can be moved
     * to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock) Set the minimum X value the points can be moved
     * to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock) Set the minimum Y value the points can be moved
     * to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock) 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) 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) 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) Group the points by a property. Points with the
     * same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock) Style options for the guide box. The guide box
     * has one state by default, the `default` state.
     */
    guideBox?: (SeriesWindbarbDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts, Highstock) Update points as they are dragged. If false, a
     * guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesWindbarbDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesWindbarbDataMarkerOptions {
    /**
     * (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, 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?: (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?: SeriesWindbarbDataMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface SeriesWindbarbDataMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface SeriesWindbarbDataMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 SeriesWindbarbDataMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface SeriesWindbarbDataMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: SeriesWindbarbDataMarkerStatesHoverOptions;
    inactive?: SeriesWindbarbDataMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: SeriesWindbarbDataMarkerStatesNormalOptions;
    /**
     * (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?: SeriesWindbarbDataMarkerStatesSelectOptions;
}
/**
 * (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 SeriesWindbarbDataMarkerStatesSelectOptions {
    /**
     * (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, 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, 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)
 */
export interface SeriesWindbarbDataOptions {
    accessibility?: SeriesWindbarbDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) A description of the point to add to the screen
     * reader information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The wind direction in degrees, where 0 is north
     * (pointing towards south).
     */
    direction?: number;
    /**
     * (Highcharts, Highstock) Point specific options for the draggable-points
     * module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesWindbarbDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesWindbarbDataEventsOptions;
    /**
     * (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) 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. 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?: SeriesWindbarbDataMarkerOptions;
    /**
     * (Highcharts, Highstock) The name of the point as shown in the legend,
     * tooltip, dataLabels etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) The wind speed in meters per second.
     */
    value?: number;
    /**
     * (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, 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]|SeriesWindbarbDataOptions)>;
    /**
     * 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";
}
export interface SeriesWordcloudDataAccessibilityOptions {
    /**
     * (Highcharts) Provide a description of the data point, announced to screen
     * readers.
     */
    description?: string;
}
/**
 * (Highcharts) Options for the drag handles.
 */
export interface SeriesWordcloudDataDragDropDragHandleOptions {
    /**
     * (Highcharts) The class name of the drag handles. Defaults to
     * `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) 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) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts) 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) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Style options for the guide box default state.
 */
export interface SeriesWordcloudDataDragDropGuideBoxDefaultOptions {
    /**
     * (Highcharts) CSS class name of the guide box in this state. Defaults to
     * `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Guide box zIndex.
     */
    zIndex?: 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?: SeriesWordcloudDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts) Point specific options for the draggable-points module.
 * Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesWordcloudDataDragDropOptions {
    /**
     * (Highcharts) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts) 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) Options for the drag handles.
     */
    dragHandle?: SeriesWordcloudDataDragDropDragHandleOptions;
    /**
     * (Highcharts) Set the maximum X value the points can be moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts) Set the maximum Y value the points can be moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts) Set the minimum X value the points can be moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts) Set the minimum Y value the points can be moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts) 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) 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) 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) Group the points by a property. Points with the same
     * property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts) Style options for the guide box. The guide box has one state
     * by default, the `default` state.
     */
    guideBox?: (SeriesWordcloudDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (Highcharts) Update points as they are dragged. If false, a guide box is
     * drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) Individual point events
 */
export interface SeriesWordcloudDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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)
 */
export interface SeriesWordcloudDataOptions {
    accessibility?: SeriesWordcloudDataAccessibilityOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point. Requires the Accessibility module.
     */
    description?: string;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesWordcloudDataDragDropOptions;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesWordcloudDataEventsOptions;
    /**
     * (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, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
}
/**
 * (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 {
    /**
     * Not available
     */
    crisp?: undefined;
    /**
     * Not available
     */
    cropTreshold?: undefined;
    /**
     * (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]|SeriesWordcloudDataOptions)>;
    /**
     * Not available
     */
    depth?: undefined;
    /**
     * Not available
     */
    edgeColor?: undefined;
    /**
     * Not available
     */
    grouping?: undefined;
    /**
     * Not available
     */
    groupPadding?: undefined;
    /**
     * Not available
     */
    groupZPadding?: undefined;
    /**
     * Not available
     */
    maxPointWidth?: undefined;
    /**
     * Not available
     */
    minPointLength?: 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: "wordcloud";
}
export interface SeriesXrangeDataAccessibilityOptions {
    /**
     * (Highcharts, Highstock, Gantt) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface SeriesXrangeDataConnectEndMarkerOptions {
    /**
     * (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) 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 SeriesXrangeDataConnectMarkerOptions {
    /**
     * (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) Connect to a point. Requires Highcharts Gantt to be loaded. 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 SeriesXrangeDataConnectOptions {
    /**
     * (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?: SeriesXrangeDataConnectEndMarkerOptions;
    /**
     * (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?: SeriesXrangeDataConnectMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: SeriesXrangeDataConnectStartMarkerOptions;
    /**
     * (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;
}
/**
 * (Gantt) Marker options specific to the start markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface SeriesXrangeDataConnectStartMarkerOptions {
    /**
     * (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) 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, Gantt) Options for the drag handles.
 */
export interface SeriesXrangeDataDragDropDragHandleOptions {
    /**
     * (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;
}
/**
 * (Highcharts, Highstock, Gantt) Style options for the guide box default state.
 */
export interface SeriesXrangeDataDragDropGuideBoxDefaultOptions {
    /**
     * (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) 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?: SeriesXrangeDataDragDropGuideBoxDefaultOptions;
}
/**
 * (Highcharts, Highstock, Gantt) Point specific options for the
 * draggable-points module. Overrides options on `series.dragDrop`.
 *
 * Requires the `draggable-points` module.
 */
export interface SeriesXrangeDataDragDropOptions {
    /**
     * (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?: SeriesXrangeDataDragDropDragHandleOptions;
    /**
     * (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?: (SeriesXrangeDataDragDropGuideBoxOptions|Dictionary<PlotSeriesDragDropGuideBoxDefaultOptions>);
    /**
     * (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, Gantt) Individual point events
 */
export interface SeriesXrangeDataEventsOptions {
    /**
     * (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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    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.
     *
     * Requires the `draggable-points` module.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
    /**
     * (Highcharts, Highstock, Gantt) 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;
}
/**
 * (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.
 */
export interface SeriesXrangeDataMarkerOptions {
    /**
     * (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, 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?: (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?: SeriesXrangeDataMarkerStatesOptions;
    /**
     * (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;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface SeriesXrangeDataMarkerStatesHoverOptions {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|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, 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;
    /**
     * (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;
}
export interface SeriesXrangeDataMarkerStatesInactiveOptions {
    /**
     * (Highcharts, Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|AnimationOptionsObject);
    /**
     * (Highcharts, Highstock) 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 SeriesXrangeDataMarkerStatesNormalOptions {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|AnimationOptionsObject);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface SeriesXrangeDataMarkerStatesOptions {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: SeriesXrangeDataMarkerStatesHoverOptions;
    inactive?: SeriesXrangeDataMarkerStatesInactiveOptions;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: SeriesXrangeDataMarkerStatesNormalOptions;
    /**
     * (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?: SeriesXrangeDataMarkerStatesSelectOptions;
}
/**
 * (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 SeriesXrangeDataMarkerStatesSelectOptions {
    /**
     * (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, 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, 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 SeriesXrangeDataOptions {
    accessibility?: SeriesXrangeDataAccessibilityOptions;
    /**
     * (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. Requires Highcharts Gantt to be loaded. 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|SeriesXrangeDataConnectOptions|Array<(string|SeriesXrangeDataConnectOptions)>);
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptionsObject|Array<DataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock, Gantt) A description of the point to add to the
     * screen reader information about the point. Requires the Accessibility
     * module.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Gantt) Point specific options for the
     * draggable-points module. Overrides options on `series.dragDrop`.
     *
     * Requires the `draggable-points` module.
     */
    dragDrop?: SeriesXrangeDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual point events
     */
    events?: SeriesXrangeDataEventsOptions;
    /**
     * (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. 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?: SeriesXrangeDataMarkerOptions;
    /**
     * (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?: SeriesXrangeDataPartialFillOptions;
    /**
     * (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 SeriesXrangeDataPartialFillOptions {
    /**
     * (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 `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 {
    /**
     * Not available
     */
    crisp?: undefined;
    /**
     * (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<SeriesXrangeDataOptions>;
    /**
     * 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";
}
/**
 * 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;
}
/**
 * A config object for bindings in Stock Tools module.
 */
export interface StockToolsBindingsObject {
    /**
     * 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>;
}
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 unique key from definitions object.
     */
    buttons?: any[];
    /**
     * (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?: (object|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]: (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;
}
/**
 * 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?: 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;
}
/**
 * (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.
 */
export interface TooltipDateTimeLabelFormatsOptions {
    day?: string;
    hour?: string;
    millisecond?: string;
    minute?: string;
    month?: string;
    second?: string;
    week?: string;
    year?: string;
}
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, 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?: (TooltipDateTimeLabelFormatsOptions|Dictionary<string>);
    /**
     * (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 tags are supported: `<b>`, `<strong>`,
     * `<i>`, `<em>`, `<br/>`, `<span>`. 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:
     *
     *  (see online documentation for example)
     */
    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) 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 {
    /**
     * 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;
    negative: 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, Highmaps, Gantt) Accessibility options for an axis.
 * Requires the accessibility module.
 */
export interface XAxisAccessibilityOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Description for an axis to
     * expose to screen reader users.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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, Highstock, Highmaps, Gantt) Range description for an axis.
     * Overrides the default range description. Set to empty to disable range
     * description for this axis.
     */
    rangeDescription?: 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 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;
}
/**
 * (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 XAxisCrosshairLabelOptions {
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border color for the crosshair label
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border corner radius of the crosshair label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width for the crosshair label.
     */
    borderWidth?: number;
    /**
     * (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 XAxisCrosshairOptions {
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The dash style for the
     * crosshair. See 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?: XAxisCrosshairLabelOptions;
    /**
     * (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) 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;
}
/**
 * (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 XAxisCurrentDateIndicatorOptions {
    /**
     * (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?: XAxisCurrentDateIndicatorEventsOptions;
    /**
     * (Gantt) An id used for identifying the plot line in Axis.removePlotLine.
     */
    id?: string;
    /**
     * (Gantt) Text labels for the plot bands
     */
    label?: XAxisCurrentDateIndicatorLabelOptions;
    /**
     * (Gantt) The width or thickness of the plot line.
     */
    width?: number;
    /**
     * (Gantt) The z index of the plot line within the chart.
     */
    zIndex?: number;
}
export interface XAxisDateTimeLabelFormatsDayOptions {
    main?: string;
}
export interface XAxisDateTimeLabelFormatsHourOptions {
    main?: string;
    range?: boolean;
}
export interface XAxisDateTimeLabelFormatsMillisecondOptions {
    main?: string;
    range?: boolean;
}
export interface XAxisDateTimeLabelFormatsMinuteOptions {
    main?: string;
    range?: boolean;
}
export interface XAxisDateTimeLabelFormatsMonthOptions {
    main?: string;
}
/**
 * (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 XAxisDateTimeLabelFormatsOptions {
    day?: (string|XAxisDateTimeLabelFormatsDayOptions);
    hour?: (string|XAxisDateTimeLabelFormatsHourOptions);
    millisecond?: (string|XAxisDateTimeLabelFormatsMillisecondOptions);
    minute?: (string|XAxisDateTimeLabelFormatsMinuteOptions);
    month?: (string|XAxisDateTimeLabelFormatsMonthOptions);
    second?: (string|XAxisDateTimeLabelFormatsSecondOptions);
    week?: (string|XAxisDateTimeLabelFormatsWeekOptions);
    year?: (string|XAxisDateTimeLabelFormatsYearOptions);
}
export interface XAxisDateTimeLabelFormatsSecondOptions {
    main?: string;
    range?: boolean;
}
export interface XAxisDateTimeLabelFormatsWeekOptions {
    main?: string;
}
export interface XAxisDateTimeLabelFormatsYearOptions {
    main?: string;
}
/**
 * (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.
     */
    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.
 */
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?: FormatterCallbackFunction<AxisLabelsFormatterContextObject>;
    /**
     * (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 the
     * label relative to the tick position on the axis.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the tick position on the axis. The default makes it
     * adapt to the font size on 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?: (object|XAxisAccessibilityOptions);
    /**
     * (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?: (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.
     */
    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:
     *
     *  (see online documentation for example)
     */
    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|XAxisCrosshairOptions);
    /**
     * (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|XAxisCurrentDateIndicatorOptions);
    /**
     * (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?: XAxisDateTimeLabelFormatsOptions;
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The dash or dot style of the
     * grid lines. For possible values, see this demonstration.
     */
    gridLineDashStyle?: DashStyleValue;
    /**
     * (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, 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.
     */
    labels?: XAxisLabelsOptions;
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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 that 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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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, 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, 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;
    step?: 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) 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 text markup like <b>, <i> and spans 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;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for an axis.
 * Requires the accessibility module.
 */
export interface YAxisAccessibilityOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Description for an axis to
     * expose to screen reader users.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) 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, Highstock, Highmaps, Gantt) Range description for an axis.
     * Overrides the default range description. Set to empty to disable range
     * description for this axis.
     */
    rangeDescription?: 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 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;
}
/**
 * (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 YAxisCrosshairLabelOptions {
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border color for the crosshair label
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border corner radius of the crosshair label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width for the crosshair label.
     */
    borderWidth?: number;
    /**
     * (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 YAxisCrosshairOptions {
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The dash style for the
     * crosshair. See 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?: YAxisCrosshairLabelOptions;
    /**
     * (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;
}
export interface YAxisDateTimeLabelFormatsDayOptions {
    main?: string;
}
export interface YAxisDateTimeLabelFormatsHourOptions {
    main?: string;
    range?: boolean;
}
export interface YAxisDateTimeLabelFormatsMillisecondOptions {
    main?: string;
    range?: boolean;
}
export interface YAxisDateTimeLabelFormatsMinuteOptions {
    main?: string;
    range?: boolean;
}
export interface YAxisDateTimeLabelFormatsMonthOptions {
    main?: string;
}
/**
 * (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 YAxisDateTimeLabelFormatsOptions {
    day?: (string|YAxisDateTimeLabelFormatsDayOptions);
    hour?: (string|YAxisDateTimeLabelFormatsHourOptions);
    millisecond?: (string|YAxisDateTimeLabelFormatsMillisecondOptions);
    minute?: (string|YAxisDateTimeLabelFormatsMinuteOptions);
    month?: (string|YAxisDateTimeLabelFormatsMonthOptions);
    second?: (string|YAxisDateTimeLabelFormatsSecondOptions);
    week?: (string|YAxisDateTimeLabelFormatsWeekOptions);
    year?: (string|YAxisDateTimeLabelFormatsYearOptions);
}
export interface YAxisDateTimeLabelFormatsSecondOptions {
    main?: string;
    range?: boolean;
}
export interface YAxisDateTimeLabelFormatsWeekOptions {
    main?: string;
}
export interface YAxisDateTimeLabelFormatsYearOptions {
    main?: string;
}
/**
 * (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.
     */
    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.
 */
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?: FormatterCallbackFunction<AxisLabelsFormatterContextObject>;
    /**
     * (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 the
     * label relative to the tick position on the axis. Defaults to -15 for left
     * axis, 15 for right axis.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the tick position on the axis.
     */
    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?: (object|YAxisAccessibilityOptions);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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.
     */
    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:
     *
     *  (see online documentation for example)
     */
    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|YAxisCrosshairOptions);
    /**
     * (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?: YAxisDateTimeLabelFormatsOptions;
    /**
     * (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?: 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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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`.
     */
    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;
    /**
     * (Highstock) The height of the Y axis. If it's a number, it is interpreted
     * as pixels.
     *
     * Since Highstock 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.
     */
    labels?: YAxisLabelsOptions;
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Maximal size of a resizable axis. Could be set as a percent
     * of plot area or pixel size.
     *
     * This feature requires the `drag-panes.js` module.
     */
    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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Minimal size of a resizable axis. Could be set as a percent
     * of plot area or pixel size.
     *
     * This feature requires the `drag-panes.js` module.
     */
    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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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 that 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 objects defining plot bands on
     * the Y axis.
     */
    plotBands?: Array<YAxisPlotBandsOptions>;
    /**
     * (Highcharts, Highstock, Gantt) An array of objects representing plot
     * lines on the X axis
     */
    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. This feature requires the
     * drag-panes.js module. 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.
     */
    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, 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, Gantt) Color for the main tick marks.
     *
     * In styled mode, the stroke is given in the `.highcharts-tick` class.
     */
    tickColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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;
    /**
     * (Highstock) The top position of the Y axis. If it's a number, it is
     * interpreted as pixel position relative to the chart.
     *
     * Since Highstock 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, 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 objects defining plot bands on the
 * Y axis.
 */
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 objects representing plot lines on
 * the X axis
 */
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.
 *
 * This feature requires the `drag-panes.js` module.
 */
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.
     *
     * This feature requires the `drag-panes.js` module.
     */
    next?: Array<(number|string)>;
    /**
     * (Highstock) Array of axes that should move with the current axis while
     * resizing.
     *
     * This feature requires the `drag-panes.js` module.
     */
    prev?: Array<(number|string)>;
}
/**
 * (Highstock) Options for axis resizing. This feature requires the
 * drag-panes.js module. 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.
     *
     * This feature requires the `drag-panes.js` module.
     */
    controlledAxis?: YAxisResizeControlledAxisOptions;
    /**
     * (Highstock) Cursor style for the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     *
     * This feature requires the `drag-panes.js` module.
     */
    cursor?: string;
    /**
     * (Highstock) Enable or disable resize by drag for the axis.
     *
     * This feature requires the `drag-panes.js` module.
     */
    enabled?: boolean;
    /**
     * (Highstock) Color of the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     *
     * This feature requires the `drag-panes.js` module.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Dash style of the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     *
     * This feature requires the `drag-panes.js` module.
     */
    lineDashStyle?: string;
    /**
     * (Highstock) Width of the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     *
     * This feature requires the `drag-panes.js` module.
     */
    lineWidth?: number;
    /**
     * (Highstock) Horizontal offset of the control line.
     *
     * This feature requires the `drag-panes.js` module.
     */
    x?: number;
    /**
     * (Highstock) Vertical offset of the control line.
     *
     * This feature requires the `drag-panes.js` module.
     */
    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;
    step?: 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) 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) 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;
}
/**
 * (Highcharts) Accessibility options for an axis. Requires the accessibility
 * module.
 */
export interface ZAxisAccessibilityOptions {
    /**
     * (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;
}
/**
 * (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;
}
/**
 * (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 ZAxisCurrentDateIndicatorOptions {
    /**
     * (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?: ZAxisCurrentDateIndicatorEventsOptions;
    /**
     * (Gantt) An id used for identifying the plot line in Axis.removePlotLine.
     */
    id?: string;
    /**
     * (Gantt) Text labels for the plot bands
     */
    label?: 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;
}
export interface ZAxisDateTimeLabelFormatsDayOptions {
    main?: string;
}
export interface ZAxisDateTimeLabelFormatsHourOptions {
    main?: string;
    range?: boolean;
}
export interface ZAxisDateTimeLabelFormatsMillisecondOptions {
    main?: string;
    range?: boolean;
}
export interface ZAxisDateTimeLabelFormatsMinuteOptions {
    main?: string;
    range?: boolean;
}
export interface ZAxisDateTimeLabelFormatsMonthOptions {
    main?: string;
}
/**
 * (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 ZAxisDateTimeLabelFormatsOptions {
    day?: (string|ZAxisDateTimeLabelFormatsDayOptions);
    hour?: (string|ZAxisDateTimeLabelFormatsHourOptions);
    millisecond?: (string|ZAxisDateTimeLabelFormatsMillisecondOptions);
    minute?: (string|ZAxisDateTimeLabelFormatsMinuteOptions);
    month?: (string|ZAxisDateTimeLabelFormatsMonthOptions);
    second?: (string|ZAxisDateTimeLabelFormatsSecondOptions);
    week?: (string|ZAxisDateTimeLabelFormatsWeekOptions);
    year?: (string|ZAxisDateTimeLabelFormatsYearOptions);
}
export interface ZAxisDateTimeLabelFormatsSecondOptions {
    main?: string;
    range?: boolean;
}
export interface ZAxisDateTimeLabelFormatsWeekOptions {
    main?: string;
}
export interface ZAxisDateTimeLabelFormatsYearOptions {
    main?: string;
}
/**
 * (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.
     */
    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.
 */
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?: FormatterCallbackFunction<AxisLabelsFormatterContextObject>;
    /**
     * (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 the label relative to the tick
     * position on the axis.
     */
    x?: number;
    /**
     * (Highcharts) The y position offset of the label relative to the tick
     * position on the axis. The default makes it adapt to the font size on
     * 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?: (object|ZAxisAccessibilityOptions);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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:
     *
     *  (see online documentation for example)
     */
    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|ZAxisCurrentDateIndicatorOptions);
    /**
     * (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?: ZAxisDateTimeLabelFormatsOptions;
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The dash or dot style of the grid lines. For possible
     * values, see this demonstration.
     */
    gridLineDashStyle?: DashStyleValue;
    /**
     * (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.
     */
    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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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 that 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?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (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;
    step?: 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) 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
     * text markup like <b>, <i> and spans 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 options
     *        the options object
     */
    constructor(chart: Chart, options: AnnotationsOptions);
    /**
     * The chart that the annotation belongs to.
     */
    chart: Chart;
    /**
     * The array of control points.
     */
    controlPoints: Array<object>;
    /**
     * The array of labels which belong to the annotation.
     */
    labels: Array<object>;
    /**
     * The options for the annotations.
     */
    options: AnnotationsOptions;
    /**
     * The array of points which defines the annotation.
     */
    points: Array<Point>;
    /**
     * The array of shapes which belong to the annotation.
     */
    shapes: Array<object>;
    /**
     * The user options for the annotations.
     */
    userOptions: AnnotationsOptions;
}
/**
 * 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 options
     *        Axis options.
     */
    constructor(chart: Chart, options: AxisOptions);
    /**
     * 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);
    /**
     * 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?: Array<number>;
    /**
     * 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;
    /**
     * 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.
     *
     * @return The SVG path definition in array form.
     */
    getPlotBandPath(from: number, to: number): 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.
     *
     * @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|AnimationOptionsObject), eventArguments?: any): void;
    /**
     * Now we have computed the normalized tickInterval, get the tick positions
     *
     * @fires Highcharts.Axis#afterSetTickPositions
     */
    setTickPositions(): 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 paneCoordiantes
     *        Whether the input pixel is relative to the chart or just the
     *        axis/pane itself.
     *
     * @return The axis value.
     */
    toValue(pixel: number, paneCoordiantes?: 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.
     */
    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;
    /**
     * 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|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|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|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|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`.
     */
    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|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;
    /**
     * 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|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 {
    /**
     * 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);
    /**
     * 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.ColorAxis#afterDrawCrosshair
     * @fires Highcharts.ColorAxis#drawCrosshair
     */
    drawCrosshair(e?: PointerEventObject, point?: Point): void;
    /**
     * Returns true if the series has points at all.
     *
     * @return True, if the series has points, otherwise false.
     */
    hasData(): boolean;
    /**
     * Initializes the color axis.
     *
     * @param chart
     *        The related chart of the color axis.
     *
     * @param userOptions
     *        The color axis options for initialization.
     */
    init(chart: Chart, userOptions: ColorAxisOptions): void;
    /**
     * Removes the color axis and the related legend item.
     *
     * @param redraw
     *        Whether to redraw the chart following the remove.
     */
    remove(redraw?: boolean): void;
    /**
     * Updates a color axis instance 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 newOptions
     *        The new options that will be merged in with existing options on
     *        the color axis.
     *
     * @param redraw
     *        Whether to redraw the chart after the color axis is altered. If
     *        doing more operations on the chart, it is a good idea to set
     *        redraw to `false` and call Highcharts.Chart#redraw after.
     */
    update(newOptions: ColorAxisOptions, redraw?: boolean): void;
}
/**
 * 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: (number|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;
    /**
     * 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(): PlotSeriesZonesOptions;
    /**
     * 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): SVGElement;
    /**
     * 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|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 `''` (an empty string), `hover`,
     *        `select` or `inactive`.
     *
     * @param move
     *        State for animation.
     *
     * @fires Highcharts.Point#afterSetState
     */
    setState(state?: string, 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|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.
     */
    findNearestKDPoints(series: Array<Series>, shared: (boolean|undefined), e: PointerEventObject): (Point|undefined);
    /**
     * 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: (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;
}
/**
 * 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`.
 */
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>;
    /**
     * 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;
    /**
     * 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;
    /**
     * 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|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;
    /**
     * 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|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|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|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
     *        Can be either `hover` or undefined to set to normal state.
     *
     * @param inherit
     *        Determines if state should be inherited by points too.
     */
    setState(state?: string, 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|AnimationOptionsObject), complete?: Function): SVGElement;
    attr(hash: string): SVGElement;
    /**
     * 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?: string, 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(): undefined;
    /**
     * 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.
     *
     * @return The original points array, but modified to render crisply.
     */
    crispLine(points: SVGPathArray, width: number): 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 attribs
     *        The initial attributes.
     *
     * @return The generated wrapper element.
     */
    path(attribs?: SVGAttributes): 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 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|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 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 format is a subset of the formats
     * for PHP's strftime function. Additional formats can be given in the
     * Highcharts.dateFormats hook.
     *
     * @param timestamp
     *        The JavaScript timestamp.
     *
     * @param capitalize
     *        Upper case first letter in the return.
     *
     * @return The formatted date.
     */
    dateFormat(timestamp: number, capitalize?: boolean): string;
    /**
     * 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.
     *
     * @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;
    /**
     * 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;
}
/**
 * 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 splitted 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;
/**
 * 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?: 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`.
 *
 * @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.
 */
export function error(code: (number|string), stop?: boolean, chart?: Chart): 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 time
 *        A `Time` instance that determines the date formatting, for example for
 *        applying time zone corrections to the formatted date.
 *
 * @return The formatted string.
 */
export function format(str: string, ctx: any, time?: Time): string;
/**
 * Format a single variable. Similar to sprintf, without the % prefix.
 *
 * @param format
 *        The format string.
 *
 * @param val
 *        The value.
 *
 * @param time
 *        A `Time` instance that determines the date formatting, for example for
 *        applying time zone corrections to the formatted date.
 *
 * @return The formatted representation of the value.
 */
export function formatSingle(format: string, val: any, time?: Time): string;
/**
 * 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 HTML element.
 *
 * @return An object containing `left` and `top` properties for the position in
 *         the page.
 */
export function offset(el: HTMLDOMElement): 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|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.
 */
export function syncTimeout(fn: Function, delay?: number, context?: any): (number|undefined);
/**
 * 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;
/**
 * 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;
