import { BaseTooltip } from '@alauda/ui';
import { ChangeDetectorRef, EventEmitter, TemplateRef } from '@angular/core';
import { CurveFactory, CurveFactoryLineOnly } from 'd3';
import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { AreaPosition, ContextChartService, ContextItem, LegendPayload } from '../chart/public-api';
import { Orientation } from '../chart/types';
import { StringMap } from '../types/commons';
import { ChartData, ChartDataItem, ChartStatus, XPlotLines } from './types';
export declare class ViewChartComponent {
    private readonly cdr;
    readonly context: ContextChartService;
    contextCallbackFunction: (context: ContextChartService) => void;
    _unit: string;
    backgroundColor: string;
    title: string | TemplateRef<unknown>;
    titleDescription: string | TemplateRef<unknown>;
    titleDescriptionContext: StringMap;
    tooltipColumnLayout: boolean;
    hideLegend: boolean;
    tooltipAutoSort: boolean;
    dateAxisLabelFormats: string;
    xAxisLabelTranslation: boolean;
    tooltipTranslation: boolean;
    tooltipTitleTranslation: boolean;
    xPlotLines: XPlotLines;
    mode: 'card' | 'default';
    marginLeft: number;
    curveType: CurveFactory | CurveFactoryLineOnly;
    get background(): string;
    yPlotLines: ContextItem[];
    yPlotLinesTooltip: TemplateRef<unknown>;
    yPlotLinesTooltipContext: StringMap;
    yPlotLinesHide: boolean;
    get unit(): string;
    set unit(value: string);
    chartStatus: ChartStatus;
    chartStatus$: Observable<ChartStatus>;
    series: ChartData[];
    series$: Observable<ChartData[]>;
    tooltipPointFormat: (d: ContextItem) => number | string;
    tooltipTitleTemplate: TemplateRef<unknown>;
    tooltipPointNameTemplate: TemplateRef<unknown>;
    tooltipPointTemplate: TemplateRef<unknown>;
    tooltipPointTemplateContext: unknown;
    legendTemplate: TemplateRef<unknown> | string;
    legendSelectAllOperation: boolean;
    legendSelectAllName: string;
    xAccessor: (d: ChartDataItem) => string | number | Date;
    yAccessor: (d: ChartDataItem) => number;
    customNoDataTitle: TemplateRef<unknown> | string;
    enableZoom: boolean;
    leftOperation: TemplateRef<unknown>;
    rightOperation: TemplateRef<unknown>;
    stepLine: boolean;
    hideTooltipUnit: boolean;
    chartType: 'line' | 'area' | 'bar';
    barOrientation: Orientation | string;
    barType: 'standard' | 'stacked';
    bandWidth: number;
    yAxisIntervalWidth: number;
    yAxisTickSuffix: string;
    mouseUpEvent: EventEmitter<AreaPosition>;
    markClickEvent: EventEmitter<ContextItem[]>;
    auiTooltipRef: BaseTooltip;
    onDestroy$: Subject<void>;
    isTemplateRef: (label: string | TemplateRef<unknown>) => label is TemplateRef<unknown>;
    get type(): "area" | "line" | "bar";
    _chartStatus$$: BehaviorSubject<ChartStatus>;
    _status: ChartStatus;
    status$: Observable<{
        loading?: boolean;
        noData?: boolean;
        failed?: boolean;
        noLegend?: boolean;
    }>;
    constructor(cdr: ChangeDetectorRef, context: ContextChartService);
    private handelChartStatus;
    legendClick(item: LegendPayload): void;
    defaultPointFormat: (d: ContextItem) => string;
    defaultYPlotLinesTooltipContext: {
        value: ContextItem[];
    };
    onClickEvent(ev: ContextItem[]): void;
    private showTooltip;
    private hideTooltip;
    mergeContext: (context: {
        value: ContextItem[];
    }) => {
        value: ContextItem[];
    };
}
