import { OnChanges, OnDestroy, OnInit, SimpleChanges } from "@angular/core";
import { Subject } from "rxjs";
import { EventBus, IDataSource, IEvent } from "@nova-ui/bits";
import { IXYScales } from "@nova-ui/charts";
import { TimeseriesScalesService } from "../timeseries-scales.service";
import { ITimeseriesOutput, ITimeseriesWidgetConfig, ITimeseriesWidgetData, ITimeseriesWidgetSeriesData } from "../types";
import * as i0 from "@angular/core";
export declare abstract class TimeseriesChartComponent<T = ITimeseriesWidgetSeriesData> implements OnChanges, OnDestroy, OnInit {
    protected eventBus: EventBus<IEvent>;
    timeseriesScalesService: TimeseriesScalesService;
    dataSource: IDataSource;
    widgetData: ITimeseriesOutput<T>;
    configuration: ITimeseriesWidgetConfig;
    protected scales: IXYScales;
    protected destroy$: Subject<void>;
    protected buildChart$: Subject<void>;
    protected resetChart: boolean;
    protected chartBuilt: boolean;
    get seriesInteractive(): boolean;
    protected constructor(eventBus: EventBus<IEvent>, timeseriesScalesService: TimeseriesScalesService, dataSource: IDataSource);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    protected applyPreviousTransformer(previousData: any): void;
    protected transformSeriesData(serie: ITimeseriesWidgetData<T>): void;
    updateYAxisDomain(): void;
    removeMetric(metricId: string): void;
    /** Updates chart data. */
    protected abstract updateChartData(): void;
    protected abstract buildChart(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TimeseriesChartComponent<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TimeseriesChartComponent<any>, never, never, { "widgetData": { "alias": "widgetData"; "required": false; }; "configuration": { "alias": "configuration"; "required": false; }; }, {}, never, never, false, never>;
}
