import { ChangeDetectorRef, ElementRef, NgZone, OnDestroy, OnInit } from '@angular/core';
import { AlertController } from '@ionic/angular';
import { AbstractVariable } from '@iotize/tap/data';
import { LegendPosition, LineChartComponent } from '@swimlane/ngx-charts';
import * as shape from 'd3-shape';
import { Observable } from 'rxjs';
import { ChartInputMutli, ChartInputStreamVar } from '../ChartDataModel';
import { OnChartSelectEvent } from '../shared-types';
import * as i0 from "@angular/core";
interface SerieItem {
    name: string | Date;
    value: number;
}
export interface ChartInputData {
    name: string;
    series?: SerieItem[];
}
export interface ChartInputStream {
    stream: Observable<number>;
    label: string;
}
export declare class TapVariableLineChartComponent extends LineChartComponent implements OnDestroy, OnInit {
    alertController: AlertController;
    id?: KeyType;
    lineChart: LineChartComponent;
    /**
     * @deprecated use
     */
    set linearCurve(curve: string);
    set predefinedCurve(curveFctOrId: string);
    _curve: shape.CurveFactory | shape.CurveBundleFactory;
    legendTitle: string;
    /**
     * @deprecated use showLegend instead
     */
    legend: boolean;
    /**
     * CHARTS OPTIONS
     */
    /**
     * @deprecated use legend instead
     */
    set showLegend(v: boolean);
    legendPosition: LegendPosition;
    xAxis: boolean;
    showXAxisLabel: boolean;
    xAxisLabel: string;
    yAxis: boolean;
    showYAxisLabel: boolean;
    yAxisLabel: string;
    yScaleMin: number;
    showExportButton: boolean;
    exportedFileName?: string;
    set history(enable: boolean);
    set valueCountLimit(limit: number | undefined);
    xAxisTickFormatting: (input: any) => string;
    set label(indexOrArray: string | string[] | undefined | Function);
    colorScheme: {
        domain: string[];
    };
    private _history;
    private _valueCountLimit;
    set variable(variableOrArray: AbstractVariable<number | number[]> | AbstractVariable<number | number[]>[] | undefined);
    private _input;
    set input(inputs: ChartInputStreamVar[]);
    set data(results: ChartInputMutli[] | number | string);
    private destroyed;
    ngOnInit(): void;
    results: ChartInputMutli[];
    private subscription?;
    private multiple?;
    private chartModel;
    constructor(myChartElement: ElementRef, zone: NgZone, cd: ChangeDetectorRef, platformId: string, alertController: AlertController);
    createExportedData(): any[];
    defaultDateTickFormatting(val: any): string;
    onSelect(event: OnChartSelectEvent): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TapVariableLineChartComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TapVariableLineChartComponent, "tap-variable-line-chart", never, { "linearCurve": "linearCurve"; "predefinedCurve": "predefinedCurve"; "legendTitle": "legendTitle"; "legend": "legend"; "showLegend": "showLegend"; "legendPosition": "legendPosition"; "xAxis": "xAxis"; "showXAxisLabel": "showXAxisLabel"; "xAxisLabel": "xAxisLabel"; "yAxis": "yAxis"; "showYAxisLabel": "showYAxisLabel"; "yAxisLabel": "yAxisLabel"; "yScaleMin": "yScaleMin"; "showExportButton": "showExportButton"; "exportedFileName": "exportedFileName"; "history": "history"; "valueCountLimit": "valueCountLimit"; "xAxisTickFormatting": "xAxisTickFormatting"; "label": "label"; "colorScheme": "colorScheme"; "variable": "variable"; "input": "input"; "data": "data"; }, {}, never, never, false>;
}
export {};
