import { HIGHCHARTS_OPTIONS } from "../../utils/enums";
import { Highcharts, Options, PlotOptions, SeriesList } from './types/highcharts';
export declare class SlHighcharts {
    private containerElement;
    /**
     * Optional: Pass the Highcharts instance directly.
     * If not provided, the component will attempt to load it automatically.
     */
    highcharts?: Highcharts;
    /**
     * The type of chart to render.
     * Supported values: 'line', 'bar', 'pie', 'column', 'grouped-stacked-column'.
     * When using `options`, you can also set `options.chart.type` directly instead.
     */
    chartType?: `${HIGHCHARTS_OPTIONS}` | HIGHCHARTS_OPTIONS;
    /**
     * Array of category labels for the x-axis.
     * Convenience shorthand for `options.xAxis.categories`.
     * Ignored if `options.xAxis` is provided via `options`.
     */
    categories?: string[];
    /**
     * Main title displayed above the chart.
     * Convenience shorthand for `options.title.text`.
     * Ignored if `options.title` is provided via `options`.
     */
    label?: string;
    /**
     * Title text for the x-axis.
     * Convenience shorthand for `options.xAxis.title.text`.
     * Ignored if `options.xAxis` is provided via `options`.
     */
    xAxisTitle?: string;
    /**
     * Title text for the y-axis.
     * Convenience shorthand for `options.yAxis.title.text`.
     * Ignored if `options.yAxis` is provided via `options`.
     */
    yAxisTitle?: string;
    /**
     * The data series to render.
     * This is the minimum required prop for most chart types when not using `options`.
     * Convenience shorthand for `options.series`.
     * Ignored if `options.series` is provided via `options`.
     *
     * @example
     * // Minimal usage — just pass series and let the component handle the rest
     * series={[{ name: 'Revenue', data: [100, 200, 300] }]}
     */
    series?: SeriesList;
    /**
     * Plot options for controlling series-level rendering behaviour (e.g. stacking, grouping).
     * Convenience shorthand for `options.plotOptions`.
     * Ignored if `options.plotOptions` is provided via `options`.
     */
    plotOptions?: PlotOptions;
    /**
     * Full Highcharts options object.
     *
     * Use this for complete control over the chart configuration.
     * Any property set here takes precedence over the individual convenience props
     * (`series`, `categories`, `label`, `xAxisTitle`, `yAxisTitle`, `plotOptions`).
     *
     * You can use `options` in two ways:
     * - **Full config**: pass the entire Highcharts options structure here and omit the
     *   individual props entirely.
     * - **Partial override**: pass only the properties you need to customise beyond what
     *   the convenience props support (e.g. `tooltip`, `legend`, `credits`), and keep
     *   using the individual props for the rest.
     *
     * @example
     * // Full config via options — no need for individual props
     * options={{ series: [...], xAxis: { categories: [...] }, title: { text: 'My Chart' } }}
     *
     * @example
     * // Partial override — add tooltip config without repeating series/categories
     * series={[...]} categories={[...]} options={{ tooltip: { shared: true } }}
     */
    options?: Options;
    /** Height of the chart container (px value or any valid CSS length string). */
    height: number | string;
    /** Width of the chart container (px value or any valid CSS length string). */
    width: number | string;
    componentDidLoad(): Promise<void>;
    componentWillUpdate(): Promise<void>;
    private renderChart;
    render(): any;
}
