import { TemplateResult } from "lit";
import { WidgetSettings } from "../util/widget-settings";
import "../panels/attributes-chart-panel";
import "../util/settings-panel";
import { AttributesChartPanel } from "../panels/attributes-chart-panel";
import { AttributeActionEvent, AttributesSelectEvent } from "../panels/attributes-panel";
import { AttributeRef } from "@openremote/model";
import { ChartWidgetConfig } from "../widgets/chart-widget";
import { OrInputChangedEvent } from "@openremote/or-mwc-components/or-mwc-input";
import moment from "moment/moment";
import { ChartAttributeConfig } from "@openremote/or-chart";
export declare class ChartSettings extends WidgetSettings {
    protected _attributesPanelElem?: AttributesChartPanel;
    protected readonly widgetConfig: ChartWidgetConfig;
    protected timeWindowOptions: Map<string, [moment.unitOfTime.DurationConstructor, number]>;
    protected timePrefixOptions: string[];
    protected samplingOptions: Map<string, string>;
    setTimeWindowOptions(options: Map<string, [moment.unitOfTime.DurationConstructor, number]>): void;
    setTimePrefixOptions(options: string[]): void;
    setSamplingOptions(options: Map<string, string>): void;
    static get styles(): import("lit").CSSResult[];
    protected render(): TemplateResult;
    protected getSamplingOptionsTemplate(type: string): TemplateResult;
    protected onAttributeAction(ev: AttributeActionEvent): void;
    protected onAttributesSelect(ev: AttributesSelectEvent): void;
    protected removeFromAttributeConfig(attributeRef: AttributeRef): void;
    /**
     * Internal function that removes/adds an {@link AttributeRef} to a category of the {@link AttributeConfig}.
     * For example, you can add an attribute to the array of 'rightAxisAttributes'.
     * If the attribute is already present, it will be removed automatically.
     *
     * @param setting The key / category to add the attribute to. (for example, 'rightAxisAttributes')
     * @param attributeRef The asset-attribute combination to add/remove.
     * @protected
     */
    protected _toggleAttributeSetting(setting: keyof ChartAttributeConfig, attributeRef: AttributeRef): void;
    /**
     * Internal function that adds an {@link AttributeRef} to a category of the {@link AttributeConfig}.
     * For example, you can add an attribute to the array of 'rightAxisAttributes'.
     * @param setting The key / category to add the attribute to. (for example, 'rightAxisAttributes')
     * @param attributeRef The asset-attribute combination to add.
     * @protected
     */
    protected _addAttributeSetting(setting: keyof ChartAttributeConfig, attributeRef: AttributeRef): void;
    /**
     * Internal function that removes an {@link AttributeRef} from a category of the {@link AttributeConfig}.
     * For example, you can remove an attribute from the array of 'rightAxisAttributes'.
     * @param setting The key / category to remove the attribute from. (for example, 'rightAxisAttributes')
     * @param attributeRef The asset-attribute combination to remove.
     * @protected
     */
    protected _removeAttributeSetting(setting: keyof ChartAttributeConfig, attributeRef: AttributeRef): void;
    protected removeFromAttributeColors(attributeRef: AttributeRef): void;
    protected openColorPickDialog(attributeRef: AttributeRef): void;
    protected onTimePrefixSelect(ev: OrInputChangedEvent): void;
    protected onTimeWindowSelect(ev: OrInputChangedEvent): void;
    protected onStackViewToggle(ev: OrInputChangedEvent): void;
    protected onTimestampControlsToggle(ev: OrInputChangedEvent): void;
    protected onShowLegendToggle(ev: OrInputChangedEvent): void;
    protected onShowZoomBarToggle(ev: OrInputChangedEvent): void;
    protected setAxisMinMaxValue(axis: 'left' | 'right', type: 'min' | 'max', value?: number): void;
    protected onMinMaxValueChange(axis: 'left' | 'right', type: 'min' | 'max', ev: OrInputChangedEvent): void;
    protected onMinMaxValueToggle(axis: 'left' | 'right', type: 'min' | 'max', ev: OrInputChangedEvent): void;
    protected onSamplingQueryChange(ev: OrInputChangedEvent): void;
}
//# sourceMappingURL=chart-settings.d.ts.map