import type { Command } from "../Command.js";
import { CommandRegistry } from "../CommandRegistry.js";
import type { Operation } from "../Operation.js";
import { OperationRegistry } from "../OperationRegistry.js";
import type { Features, HasFeatures, ModelRef } from "../common.js";
/**
 * Arguments for the charts.update-definition command.
 */
export interface UpdateChartDefinitionArgs {
    /**
     * The chart to update, referenced by chart model or its ID.
     */
    chart: ModelRef;
    /**
     * The Highcharts definition with which to update the chart.
     */
    definition: Highcharts.Options;
}
/**
 * Arguments for various commands that affect a chart's features.
 */
export interface UpdateChartFeaturesArgs extends HasFeatures {
    /**
     * The chart(s) to update, referenced by layout ID or chart model.
     */
    chart: ModelRef;
}
export declare class ChartsCommands extends CommandRegistry {
    protected readonly _prefix = "charts";
    /**
     * Updates charts with provided features. Only activated charts that receive
     * features from all required feature sources will get displayed. Web only.
     *
     * @webOnly
     */
    get display(): Command<Features | UpdateChartFeaturesArgs>;
    /**
     * Adds one or more features to charts. If `chart` is specified, then only
     * the given chart will be updated, otherwise all charts will. Web only.
     *
     * @webOnly
     */
    get addFeatures(): Command<Features | UpdateChartFeaturesArgs>;
    /**
     * Remove one or more features from active charts. If `chart` is specified,
     * then only the given chart will be updated, otherwise all charts will. Web
     * only.
     *
     * @webOnly
     */
    get removeFeatures(): Command<Features | UpdateChartFeaturesArgs>;
    /**
     * Clear features from active charts. If a chart is specified, then only the
     * given chart will be updated, otherwise all charts will. Web only.
     *
     * @webOnly
     */
    get clear(): Command<ModelRef | void>;
    /**
     * Updates the definition of a chart. Web only.
     *
     * @webOnly
     */
    get updateDefinition(): Command<UpdateChartDefinitionArgs>;
}
export declare class ChartOperations extends OperationRegistry {
    protected readonly _prefix = "charts";
    /**
     * Returns the current set of features from all active charts. Web only.
     *
     * @webOnly
     */
    get getFeatures(): Operation<ModelRef | void, Features>;
    /**
     * Gets the definition of a chart that corresponds to the ID or the
     * ChartModel instance that's passed in as an argument. Web only.
     *
     * @webOnly
     */
    get getDefinition(): Operation<ModelRef, Highcharts.Options>;
}
