import { ModalController } from "@ionic/angular";
import { AbstractVariable } from "@iotize/tap/data";
import { Observable, Subscription } from "rxjs";
export interface ChartInputMultiStreamArray {
    stream: Observable<number[]>;
    label: string;
}
export interface ChartInputMultiStreamVar {
    stream: Observable<number>[];
    label: string;
}
export interface ChartInputStreamArray {
    stream: Observable<number[]>;
    label: string;
}
export interface ChartInputSingle {
    name: string;
    value: number;
    extra: number;
}
export interface ChartSerieItem {
    name: string;
    value: number;
    extra: number;
}
export declare type ChartInputTable = {
    name: string;
} & {
    [vals: number]: number;
};
export interface ChartInputMutli {
    name: string;
    series: ChartSerieItem[];
}
export interface ChartInputStreamVar {
    stream: Observable<number>;
    label: string;
}
export declare class ChartDataModel {
    labels: string | string[] | undefined | Function;
    subList: Subscription[];
    currentData: ChartInputStreamVar | ChartInputStreamVar[] | ChartInputStreamArray | ChartInputStreamArray[];
    initLabel(indexOrArray: string | string[] | undefined | Function): void;
    initVariableMultiple(variableOrArray: AbstractVariable<any> | AbstractVariable<any>[] | undefined): ChartInputStreamArray[];
    initVariable(variableOrArray: AbstractVariable<any> | AbstractVariable<any>[] | undefined): ChartInputStreamVar | ChartInputStreamVar[];
    initVariableArray(variableOrArray: AbstractVariable<any> | AbstractVariable<any>[] | undefined): ChartInputStreamArray[];
    defineInputStreamSingle(inputs: ChartInputStreamVar | ChartInputStreamVar[], results: ChartInputSingle[], history: boolean, valueCountLimit: number): Observable<unknown>;
    defineMultiInputStream(inputs: ChartInputMultiStreamArray[], results: ChartInputMutli[], history: boolean, valueCountLimit: number): Observable<ChartInputMutli[]>;
    defineMultiInputStreamTable(inputs: ChartInputMultiStreamArray[], results: ChartInputTable[], history: boolean, valueCountLimit: number): Observable<ChartInputTable[]>;
    defineInputStreamMulti(inputs: ChartInputStreamArray | ChartInputStreamArray[] | ChartInputStreamArray[], results: ChartInputMutli[], history: boolean, valueCountLimit: number): Observable<ChartInputMutli[]>;
    defineInputStreamHistoryMultiLegend(inputs: ChartInputStreamArray[], results: ChartInputMutli[], valueCountLimit: number): Observable<ChartInputMutli[]>;
    labelConfig(index: number, labelBundle: string): string;
    digit(n: number): string;
    showDetail(event: any, mod: ModalController, component: any): Promise<void>;
    currentDate(): string;
    destroyCurrentSub(): void;
}
