import type { HTMLDOMElement } from '../Renderer/DOMElementType';
import type Options from '../Options';
import Chart from '../Chart/Chart.js';
import StockChart from './StockChart.js';
declare module '../Options' {
interface Options {
/**
* Initial budget for performance charts. When set, series are shown as
* budget values scaled from the start of the visible range instead of
* percentage change. When combined with
* {@link Highcharts.Options#portfolios}, each portfolio allocates this
* budget by series name and may rebalance over time.
*
* @since next
* @product highstock
*/
initialBudget?: number;
}
}
/**
* Stock chart with percentage or budget compare enabled by default. Series
* values are shown as percentage change, or as a scaled initial budget, from
* the first point in the visible range. The navigator keeps absolute values
* and clips series to the selected range.
*
* @requires modules/stock
*
* @since next
*
* @class
* @name Highcharts.PerformanceChart
* @extends Highcharts.StockChart
*/
declare class PerformanceChart extends StockChart {
/**
* Initializes the chart. The constructor's arguments are passed on
* directly.
*
* @function Highcharts.PerformanceChart#init
*
* @param {Highcharts.Options} userOptions
* Custom options.
*
* @param {Function|true} [callback]
* Function to run when the chart has loaded and all external
* images are loaded. Set to `true` to return a promise that
* resolves when the chart is ready.
*
* @emits Highcharts.PerformanceChart#event:init
* @emits Highcharts.PerformanceChart#event:afterInit
*/
init(userOptions: Partial, callback?: Chart.CallbackFunction | true): void;
}
declare namespace PerformanceChart {
/**
* Factory function for creating new performance charts. Creates a new
* {@link Highcharts.PerformanceChart|PerformanceChart} object with
* percentage or budget compare defaults on top of stock chart defaults.
*
* @example
* let chart = Highcharts.performanceChart('container', {
* initialBudget: 100e6,
* series: [{
* data: [1, 2, 3, 4, 5, 6, 7, 8, 9],
* pointInterval: 24 * 60 * 60 * 1000
* }]
* });
*
* @function Highcharts.performanceChart
*
* @since next
*
* @param {string|Highcharts.HTMLDOMElement} [renderTo]
* The DOM element to render to, or its id.
*
* @param {Highcharts.Options} options
* The chart options structure as described in the
* [options reference](https://api.highcharts.com/highstock).
*
* @param {Highcharts.ChartCallbackFunction} [callback]
* A function to execute when the chart object is finished
* rendering and all external image files (`chart.backgroundImage`,
* `chart.plotBackgroundImage` etc) are loaded. Defining a
* [chart.events.load](https://api.highcharts.com/highstock/chart.events.load)
* handler is equivalent.
*
* @return {Highcharts.PerformanceChart}
* The chart object.
*/
function performanceChart(a: (string | HTMLDOMElement | Options), b?: (Chart.CallbackFunction | Options), c?: Chart.CallbackFunction | true): PerformanceChart | Promise;
}
export default PerformanceChart;