import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
import { CurveFactory, CurveFactoryLineOnly } from 'd3';
import { Observable, Subject } from 'rxjs';
import { AreaMouseEvent } from '..';
import { StringMap } from '../../../core';
import { ResizeEvent } from '../../../core/public-api';
import { ChartData } from '../../../view-chart/types';
import { ContextChartService } from '../../chart.service';
import { ChartTooltipComponent, ContextItem } from '../tooltip/tooltip.component';
import * as i0 from "@angular/core";
export interface AreaPosition {
    x1: number;
    x2: number;
    startX: number | string;
    endX: number | string;
}
export declare class ChartComponent implements OnInit, OnDestroy {
    readonly context: ContextChartService;
    private readonly cdr;
    width: number;
    height: number;
    marginLeft: number;
    title: string | TemplateRef<unknown>;
    titleDescription: string | TemplateRef<unknown>;
    titleDescriptionContext: StringMap;
    enableZoom: boolean;
    contextCallbackFunction$: Observable<(context: ContextChartService) => void>;
    contextCallbackFunction: (context: ContextChartService) => void;
    hideLegend: boolean;
    mode: 'card' | 'default';
    curveType: CurveFactory | CurveFactoryLineOnly;
    data: ChartData[];
    data$: Observable<ChartData[]>;
    mouseUpEvent: EventEmitter<AreaPosition>;
    clickEvent: EventEmitter<ContextItem[]>;
    tooltipComponent: ChartTooltipComponent;
    isTemplateRef: (label: any) => label is TemplateRef<unknown>;
    margin: {
        top: number;
        right: number;
        bottom: number;
        left: number;
    };
    openSelect: boolean;
    destroy$$: Subject<void>;
    areaPosition: AreaPosition;
    view: {
        width: number;
        height: number;
    };
    get transform(): string;
    constructor(context: ContextChartService, cdr: ChangeDetectorRef);
    onResized({ width, height }: ResizeEvent): void;
    ngOnInit(): void;
    onMouseMove(data: AreaMouseEvent): void;
    onMouseLeave(): void;
    onMouseDown(data: AreaMouseEvent): void;
    onMouseUp(): void;
    onClick(result: AreaMouseEvent): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ChartComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ChartComponent, "acl-chart", never, { "width": "width"; "height": "height"; "marginLeft": "marginLeft"; "title": "title"; "titleDescription": "titleDescription"; "titleDescriptionContext": "titleDescriptionContext"; "enableZoom": "enableZoom"; "contextCallbackFunction": "contextCallbackFunction"; "hideLegend": "hideLegend"; "mode": "mode"; "curveType": "curveType"; "data": "data"; }, { "mouseUpEvent": "mouseUpEvent"; "clickEvent": "clickEvent"; }, ["tooltipComponent"], ["acl-legend", "*"], false>;
}
