import { Observable } from 'rxjs';
import { GroupResult } from '@progress/kendo-data-query';
import { IdType } from 'imng-nrsrx-client-utils';
import * as i0 from '@angular/core';
import { OnDestroy } from '@angular/core';
import { Subscribable, Subscriptions } from 'imng-ngrx-utils';

interface ChartSeriesDataPoint {
    seriesName: string;
    metric: number;
    interval: IdType;
}

interface IChartODataFacade {
    seriesData$: Observable<ChartSeriesDataPoint[] | GroupResult[]>;
    loadSeriesData(filter: unknown): void;
}

declare abstract class ChartODataBaseComponent<FACADE extends IChartODataFacade> implements OnDestroy, Subscribable {
    readonly facade: FACADE;
    readonly gridRefresh$: Observable<unknown> | null;
    allSubscriptions: Subscriptions;
    readonly seriesData$: Observable<ChartSeriesDataPoint[] | GroupResult[]>;
    readonly isDataLoadPending$?: Observable<boolean>;
    height: string | number;
    constructor(facade: FACADE, gridRefresh$?: Observable<unknown> | null);
    abstract loadChart(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ChartODataBaseComponent<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ChartODataBaseComponent<any>, never, never, { "height": { "alias": "height"; "required": false; }; }, {}, never, never, true, never>;
}

export { ChartODataBaseComponent };
export type { ChartSeriesDataPoint, IChartODataFacade };
