import { TooltipContext, View } from '@alauda/chart';
import { ChangeDetectorRef, EventEmitter, OnInit, TemplateRef } from '@angular/core';
import { CurveFactory, CurveFactoryLineOnly } from 'd3';
import { Observable, Subject, BehaviorSubject } from 'rxjs';
import { AreaPosition, ContextItem } from '../chart/public-api';
import { StringMap } from '../core';
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: View) => void;
    backgroundColor: string;
    hideHeader: boolean;
    title: string | TemplateRef<unknown>;
    hideTitle: boolean;
    chartType: 'line' | 'area' | 'bar';
    titleDescription: string | TemplateRef<unknown>;
    titleDescriptionContext: StringMap;
    unit: string;
    indicator: Indicator[];
    gridOffsetTop: number;
    indicator$: Observable<Indicator[]>;
    metricApiParams: MetricApiParams;
    metricApiParams$: Observable<MetricApiParams>;
    tooltipPointNameTemplate: TemplateRef<unknown>;
    tooltipPointTemplate: TemplateRef<unknown>;
    legendTemplate: TemplateRef<unknown> | string;
    legendSelectAllOperation: boolean;
    legendSelectAllName: string;
    tooltipPointFormat: (d: ContextItem) => number | string;
    tooltipPointTemplateContext: {
        [key: string]: any;
    };
    tooltipColumnLayout: boolean;
    hideLegend: boolean;
    tooltipAutoSort: boolean;
    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;
    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[]>>;
    hasNoData(res: ChartData[]): boolean;
    refresh(): void;
    private handelChartStatus;
    private handleDateAxisLabelFormats;
    static ɵfac: i0.ɵɵFactoryDeclaration<MetricChartComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MetricChartComponent, "acl-metric-chart", never, { "contextCallbackFunction": "contextCallbackFunction"; "backgroundColor": "backgroundColor"; "hideHeader": "hideHeader"; "title": "title"; "hideTitle": "hideTitle"; "chartType": "chartType"; "titleDescription": "titleDescription"; "titleDescriptionContext": "titleDescriptionContext"; "unit": "unit"; "indicator": "indicator"; "gridOffsetTop": "gridOffsetTop"; "metricApiParams": "metricApiParams"; "tooltipPointNameTemplate": "tooltipPointNameTemplate"; "tooltipPointTemplate": "tooltipPointTemplate"; "legendTemplate": "legendTemplate"; "legendSelectAllOperation": "legendSelectAllOperation"; "legendSelectAllName": "legendSelectAllName"; "tooltipPointFormat": "tooltipPointFormat"; "tooltipPointTemplateContext": "tooltipPointTemplateContext"; "tooltipColumnLayout": "tooltipColumnLayout"; "hideLegend": "hideLegend"; "tooltipAutoSort": "tooltipAutoSort"; "hideTooltipUnit": "hideTooltipUnit"; "leftOperation": "leftOperation"; "leftOperationContext": "leftOperationContext"; "rightOperation": "rightOperation"; "mode": "mode"; "adaptUnit": "adaptUnit"; "percent": "percent"; "dependOnData": "dependOnData"; "customNoDataTitle": "customNoDataTitle"; "dataFormat": "dataFormat"; "customSeries": "customSeries"; "isCustomSeries": "isCustomSeries"; "chartStatus": "chartStatus"; "tooltipTranslation": "tooltipTranslation"; "xPlotLines": "xPlotLines"; "yPlotLines": "yPlotLines"; "yPlotLinesTooltip": "yPlotLinesTooltip"; "yPlotLinesTooltipContext": "yPlotLinesTooltipContext"; "yPlotLinesHide": "yPlotLinesHide"; "enableZoom": "enableZoom"; "stepLine": "stepLine"; "tooltipTitleTemplate": "tooltipTitleTemplate"; "yAccessor": "yAccessor"; "curveType": "curveType"; }, { "mouseUpEvent": "mouseUpEvent"; "markClickEvent": "markClickEvent"; "refreshEvent": "refreshEvent"; "dataCompleted": "dataCompleted"; }, never, never, false>;
}
