import { InjectionToken } from '@angular/core';
import { ScaleBand, ScaleLinear, ScalePoint, ScaleTime } from 'd3';
import { BehaviorSubject, Subject } from 'rxjs';
import { ChartData } from '../view-chart/types';
import { LegendItem } from './common/legend/legend.component';
import { ChartMargin, ChartView, DomainParams, Orientation, SeriesData } from './types';
import { ScaleType } from './utils';
export declare const CHART_COLORS_TOKEN: InjectionToken<string[]>;
interface LegendChangePayload {
    legendItem: LegendItem;
    legends: LegendItem[];
}
export declare class ContextChartService {
    private readonly chartColors;
    margin: ChartMargin;
    chartView: ChartView;
    update$$: Subject<void>;
    legendChange$$: Subject<LegendChangePayload>;
    legendActivate$$: Subject<string>;
    disabledLegend: Set<string>;
    showXLabel: boolean;
    showYLabel: boolean;
    yScaleMin: number;
    yScaleMax: number;
    xSeriesValue: Array<string | number | Date>;
    ySeriesValue: number[];
    _scaleType: ScaleType;
    barOptions: {
        isBand: boolean;
        orientation: Orientation | string;
        type: string;
    };
    chartData: ChartData[];
    chartData$: BehaviorSubject<ChartData[]>;
    seriesData$: BehaviorSubject<SeriesData[]>;
    triggerInitData$: BehaviorSubject<ChartData[]>;
    ySeriesDomain: number[];
    xSeriesDomain: unknown[];
    cacheDomainParams: DomainParams;
    cacheXScale: ScaleLinear<number, number> | ScaleTime<number, number> | ScalePoint<string>;
    cacheYScale: ScaleLinear<number, number>;
    noData: boolean;
    cacheScale: ScaleLinear<number, number>;
    noData$: import("rxjs").Observable<boolean>;
    get scaleType(): ScaleType;
    set scaleType(type: ScaleType);
    get x(): ScaleLinear<number, number, never> | ScaleTime<number, number, never> | ScalePoint<string>;
    get y(): ScaleLinear<number, number, never>;
    get innerDomain(): string[];
    get colors(): string[];
    get horizontal(): boolean;
    constructor(chartColors: string[]);
    initContext(): void;
    setChartData(data: ChartData[]): void;
    barInnerScale: (barPadding?: number) => ScaleBand<string>;
    calculateY: () => ScaleLinear<number, number, never>;
    updateChartView(width?: number, height?: number, margin?: ChartMargin): void;
    getChartDefaultColor: (index: number) => string;
    private calculationYDomain;
    calculationYAxisMax(): void;
    private getYSeriesItemDomain;
    private getXScale;
    private adoptCache;
    selectedLegend(payload: LegendChangePayload): void;
    selectedAllLegend(): void;
    unselectAllLegend(legends: string[]): void;
    deactivateLegend(payload: LegendChangePayload): void;
}
export {};
