import { ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import type { ECharts, EChartsOption } from 'echarts';
import { AlarmDetailsExtended, AlarmOrEventExtended, DatapointsGraphKPIDetails, DatapointsGraphWidgetConfig, EventDetailsExtended } from './models';
import { Observable } from 'rxjs';
import { DynamicComponentAlertAggregator } from '@c8y/ngx-components';
import { IAlarm, IEvent } from '@c8y/client';
import { Interval } from '@c8y/ngx-components/interval-picker';
import * as i0 from "@angular/core";
export declare class ChartsComponent implements OnChanges, OnInit, OnDestroy {
    chartOption$: Observable<EChartsOption>;
    echartsInstance: ECharts;
    showLoadMore: boolean;
    alarms: IAlarm[];
    events: IEvent[];
    sliderZoomUsed: boolean;
    config: DatapointsGraphWidgetConfig;
    alerts: DynamicComponentAlertAggregator;
    configChangeOnZoomOut: EventEmitter<{
        dateFrom: Date;
        dateTo: Date;
        interval?: Interval["id"];
    }>;
    timeRangeChangeOnRealtime: EventEmitter<Pick<DatapointsGraphWidgetConfig, "dateFrom" | "dateTo">>;
    datapointOutOfSync: EventEmitter<DatapointsGraphKPIDetails>;
    updateAlarmsAndEvents: EventEmitter<AlarmOrEventExtended[]>;
    isMarkedAreaEnabled: EventEmitter<boolean>;
    chart: ElementRef;
    private configChangedSubject;
    private readonly measurementService;
    private readonly echartsOptionsService;
    private readonly chartRealtimeService;
    private readonly chartEventsService;
    private readonly chartAlarmsService;
    private readonly widgetTimeContextDateRangeService;
    private loadedTimeRange;
    constructor();
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    onChartInit(ec: ECharts): void;
    onChartClick(params: {
        data: {
            itemType: string;
        };
    }): void;
    isAlarmClick(params: any): boolean;
    hasMarkArea(options: any): boolean;
    saveAsImage(): void;
    loadMoreData(): void;
    debounce<T extends (...args: any[]) => void>(func: T, wait: number): (...args: Parameters<T>) => void;
    /**
     * Toggles the visibility of a series in the chart based on the provided datapoint.
     * @param datapoint - The datapoint to toggle visibility for.
     */
    toggleDatapointSeriesVisibility(datapoint: DatapointsGraphKPIDetails): void;
    /**
     * Toggles the visibility of a series in the chart based on the provided alarm or event.
     * @param alarmOrEvent - The alarm or event to toggle visibility for.
     */
    toggleAlarmEventSeriesVisibility(alarmOrEvent: AlarmDetailsExtended | EventDetailsExtended): void;
    private getDefaultChartOptions;
    private getMarkedAreaData;
    private getMarkedLineData;
    private loadAlarmsAndEvents;
    private startRealtimeIfPossible;
    private addActiveAlarms;
    private getChartOptions;
    private fetchSeriesForDatapoints$;
    private addTruncatedDataAlert;
    private getTimeRange;
    static ɵfac: i0.ɵɵFactoryDeclaration<ChartsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ChartsComponent, "c8y-charts", never, { "config": { "alias": "config"; "required": false; }; "alerts": { "alias": "alerts"; "required": false; }; }, { "configChangeOnZoomOut": "configChangeOnZoomOut"; "timeRangeChangeOnRealtime": "timeRangeChangeOnRealtime"; "datapointOutOfSync": "datapointOutOfSync"; "updateAlarmsAndEvents": "updateAlarmsAndEvents"; "isMarkedAreaEnabled": "isMarkedAreaEnabled"; }, never, never, true, never>;
}
//# sourceMappingURL=charts.component.d.ts.map