import { TooltipContext } from '@alauda/chart';
import { ChangeDetectorRef, EventEmitter, OnInit, TemplateRef } from '@angular/core';
import { CurveFactory, CurveFactoryLineOnly } from 'd3';
import { Observable, Subject, BehaviorSubject } from 'rxjs';
import { Chart, TooltipValue } from 'zz-chart';
import { AreaPosition, ContextItem } from '../chart/public-api';
import { StringMap } from '../core/public-api';
import { ChartData, ChartDataItem, ChartStatus, XPlotLines } from '../view-chart/public-api';
import { CommonChartService } from './common-chart.service';
import { MatchUnitParams } from './helpers';
import { Indicator, MetricApiParams, MetricResult } from './types';
import * as i0 from "@angular/core";
export declare class MetricChartComponent implements OnInit {
    private readonly service;
    private readonly cdr;
    contextCallbackFunction: (context: Chart) => void;
    backgroundColor: string;
    hideHeader: boolean;
    title: string | TemplateRef<unknown>;
    hideTitle: boolean;
    chartType: 'line' | 'area' | 'bar' | 'point' | 'stat';
    titleDescription: string | TemplateRef<unknown>;
    titleDescriptionContext: StringMap;
    unit: string;
    tooltipAppendToBody: boolean;
    get overflow(): "" | "unset";
    unit$: Observable<string>;
    indicator: Indicator[];
    gridOffsetTop: number;
    yAxisMinStep?: number;
    rotated: boolean;
    barType: 'standard' | 'stacked';
    indicator$: Observable<Indicator[]>;
    metricApiParams: MetricApiParams;
    metricApiParams$: Observable<MetricApiParams>;
    tooltipPointNameTemplate: TemplateRef<unknown>;
    tooltipPointTemplate: TemplateRef<unknown>;
    legendTemplate: TemplateRef<unknown> | string;
    legendSelectAllOperation: boolean;
    legendSelectAllName: string;
    tooltipHide: boolean;
    tooltipPointFormat: (d: ContextItem) => number | string;
    tooltipPointTemplateContext: {
        [key: string]: any;
    };
    tooltipColumnLayout: boolean;
    hideLegend: boolean;
    tooltipAutoSort: boolean;
    tooltipSortMethod: (a: TooltipValue, b: TooltipValue) => number;
    hideTooltipUnit: boolean;
    leftOperation: TemplateRef<unknown>;
    leftOperationContext: StringMap;
    rightOperation: TemplateRef<unknown>;
    mode: 'card' | 'default';
    adaptUnit: boolean | MatchUnitParams;
    adaptUnit$: Observable<boolean | MatchUnitParams>;
    percent: boolean;
    percent$: Observable<boolean>;
    dependOnData: boolean;
    customNoDataTitle: TemplateRef<unknown> | string;
    dataFormat: (d: MetricResult[], indicator: Indicator[]) => ChartData[];
    customSeries: MetricResult[];
    customSeries$: Observable<MetricResult[]>;
    isCustomSeries: boolean;
    series$: Observable<ChartData[]>;
    chartStatus: ChartStatus;
    chartStatus$: Observable<ChartStatus>;
    tooltipTranslation: boolean;
    xPlotLines: XPlotLines;
    xPlotEmpty: boolean;
    yPlotLines: TooltipContext;
    yPlotLinesTooltip: TemplateRef<unknown>;
    yPlotLinesTooltipContext: StringMap;
    yPlotLinesHide: boolean;
    enableZoom: boolean;
    stepLine: boolean;
    tooltipTitleTemplate: TemplateRef<unknown>;
    yAccessor: (d: ChartDataItem) => number;
    curveType: CurveFactory | CurveFactoryLineOnly;
    mouseUpEvent: EventEmitter<AreaPosition>;
    markClickEvent: EventEmitter<TooltipContext>;
    refreshEvent: EventEmitter<any>;
    dataCompleted: EventEmitter<void>;
    reload$: BehaviorSubject<any>;
    _chartStatus$$: Subject<ChartStatus>;
    _status: ChartStatus;
    status$: Observable<{
        loading?: boolean;
        noData?: boolean;
        failed?: boolean;
        noLegend?: boolean;
    }>;
    noData: boolean;
    dateAxisLabelFormats: string;
    dateXAxisLabelFormats: string;
    get xAccessor(): (d: ChartDataItem<{
        x: number;
        y: number;
    }>) => number;
    yAccessor$: Observable<(d: ChartDataItem<{
        x: number;
        y: number;
    }>) => number>;
    _cacheTime: MetricApiParams;
    private chartParams;
    constructor(service: CommonChartService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    defaultSeries$: Observable<MetricResult[]>;
    handleTimeParams(): void;
    handleMetricDataPipe(): import("rxjs").UnaryFunction<Observable<unknown>, Observable<ChartData[]>>;
    refresh(): void;
    private handelChartStatus;
    private handleDateAxisLabelFormats;
    static ɵfac: i0.ɵɵFactoryDeclaration<MetricChartComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MetricChartComponent, "acl-metric-chart", never, { "contextCallbackFunction": { "alias": "contextCallbackFunction"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "hideHeader": { "alias": "hideHeader"; "required": false; }; "title": { "alias": "title"; "required": false; }; "hideTitle": { "alias": "hideTitle"; "required": false; }; "chartType": { "alias": "chartType"; "required": false; }; "titleDescription": { "alias": "titleDescription"; "required": false; }; "titleDescriptionContext": { "alias": "titleDescriptionContext"; "required": false; }; "unit": { "alias": "unit"; "required": false; }; "tooltipAppendToBody": { "alias": "tooltipAppendToBody"; "required": false; }; "indicator": { "alias": "indicator"; "required": false; }; "gridOffsetTop": { "alias": "gridOffsetTop"; "required": false; }; "yAxisMinStep": { "alias": "yAxisMinStep"; "required": false; }; "rotated": { "alias": "rotated"; "required": false; }; "barType": { "alias": "barType"; "required": false; }; "metricApiParams": { "alias": "metricApiParams"; "required": false; }; "tooltipPointNameTemplate": { "alias": "tooltipPointNameTemplate"; "required": false; }; "tooltipPointTemplate": { "alias": "tooltipPointTemplate"; "required": false; }; "legendTemplate": { "alias": "legendTemplate"; "required": false; }; "legendSelectAllOperation": { "alias": "legendSelectAllOperation"; "required": false; }; "legendSelectAllName": { "alias": "legendSelectAllName"; "required": false; }; "tooltipHide": { "alias": "tooltipHide"; "required": false; }; "tooltipPointFormat": { "alias": "tooltipPointFormat"; "required": false; }; "tooltipPointTemplateContext": { "alias": "tooltipPointTemplateContext"; "required": false; }; "tooltipColumnLayout": { "alias": "tooltipColumnLayout"; "required": false; }; "hideLegend": { "alias": "hideLegend"; "required": false; }; "tooltipAutoSort": { "alias": "tooltipAutoSort"; "required": false; }; "tooltipSortMethod": { "alias": "tooltipSortMethod"; "required": false; }; "hideTooltipUnit": { "alias": "hideTooltipUnit"; "required": false; }; "leftOperation": { "alias": "leftOperation"; "required": false; }; "leftOperationContext": { "alias": "leftOperationContext"; "required": false; }; "rightOperation": { "alias": "rightOperation"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "adaptUnit": { "alias": "adaptUnit"; "required": false; }; "percent": { "alias": "percent"; "required": false; }; "dependOnData": { "alias": "dependOnData"; "required": false; }; "customNoDataTitle": { "alias": "customNoDataTitle"; "required": false; }; "dataFormat": { "alias": "dataFormat"; "required": false; }; "customSeries": { "alias": "customSeries"; "required": false; }; "isCustomSeries": { "alias": "isCustomSeries"; "required": false; }; "chartStatus": { "alias": "chartStatus"; "required": false; }; "tooltipTranslation": { "alias": "tooltipTranslation"; "required": false; }; "xPlotLines": { "alias": "xPlotLines"; "required": false; }; "xPlotEmpty": { "alias": "xPlotEmpty"; "required": false; }; "yPlotLines": { "alias": "yPlotLines"; "required": false; }; "yPlotLinesTooltip": { "alias": "yPlotLinesTooltip"; "required": false; }; "yPlotLinesTooltipContext": { "alias": "yPlotLinesTooltipContext"; "required": false; }; "yPlotLinesHide": { "alias": "yPlotLinesHide"; "required": false; }; "enableZoom": { "alias": "enableZoom"; "required": false; }; "stepLine": { "alias": "stepLine"; "required": false; }; "tooltipTitleTemplate": { "alias": "tooltipTitleTemplate"; "required": false; }; "yAccessor": { "alias": "yAccessor"; "required": false; }; "curveType": { "alias": "curveType"; "required": false; }; }, { "mouseUpEvent": "mouseUpEvent"; "markClickEvent": "markClickEvent"; "refreshEvent": "refreshEvent"; "dataCompleted": "dataCompleted"; }, never, never, false, never>;
}
