import { ChangeDetectorRef, EventEmitter, OnInit, TemplateRef } from '@angular/core';
import { CurveFactory, CurveFactoryLineOnly } from 'd3';
import { Observable, Subject } from 'rxjs';
import { AreaPosition, ContextChartService, ContextItem } from '../chart/public-api';
import { StringMap } from '../types/commons';
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';
export declare class MetricChartComponent implements OnInit {
    private readonly service;
    private readonly cdr;
    contextCallbackFunction: (context: ContextChartService) => void;
    backgroundColor: string;
    title: string | TemplateRef<unknown>;
    titleDescription: string | TemplateRef<unknown>;
    titleDescriptionContext: StringMap;
    unit: string;
    indicator: Indicator[];
    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>;
    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: ContextItem[];
    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<ContextItem[]>;
    dataCompleted: EventEmitter<void>;
    _chartStatus$$: Subject<ChartStatus>;
    _status: ChartStatus;
    status$: Observable<{
        loading?: boolean;
        noData?: boolean;
        failed?: boolean;
        noLegend?: boolean;
    }>;
    noData: boolean;
    dateAxisLabelFormats: 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;
    private handelChartStatus;
    private handleDateAxisLabelFormats;
}
