import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { CurveFactory, CurveFactoryLineOnly } from 'd3';
import { Subject } from 'rxjs';
import { ChartData, ChartDataItem } from '../../../view-chart/types';
import { ContextChartService } from '../../chart.service';
import { SeriesData } from '../../types';
import * as i0 from "@angular/core";
interface LineData extends ChartData {
    width: 3;
    path: string;
    visibility: string;
}
export interface AreaMouseEvent {
    e: MouseEvent;
    rectDom?: HTMLElement;
}
export declare class RangeAreaComponent implements OnInit, OnDestroy {
    readonly context: ContextChartService;
    private readonly cdr;
    rectEl: ElementRef;
    curveType: CurveFactory | CurveFactoryLineOnly;
    mouseMoveEvent: EventEmitter<AreaMouseEvent>;
    mouseLeaveEvent: EventEmitter<MouseEvent>;
    mouseDownEvent: EventEmitter<AreaMouseEvent>;
    mouseUpEvent: EventEmitter<AreaMouseEvent>;
    clickEvent: EventEmitter<AreaMouseEvent>;
    destroy$$: Subject<void>;
    view: {
        width: number;
        height: number;
    };
    constructor(context: ContextChartService, cdr: ChangeDetectorRef);
    lineData: LineData[];
    ngOnInit(): void;
    mouseDown(e: MouseEvent, rectDom?: HTMLElement): void;
    mouseUp(e: MouseEvent, rectDom?: HTMLElement): void;
    mouseMove(e: MouseEvent, rectDom?: HTMLElement): void;
    mouseLeave(e: MouseEvent): void;
    lineOnMouseMove(line: SeriesData): void;
    lineOnMouseLeave(e: MouseEvent): void;
    areaClickEvent(e: MouseEvent, rectDom?: HTMLElement): void;
    allowLeave(e: MouseEvent): boolean;
    getLineGenerator(): import("d3-shape").Line<ChartDataItem<object>>;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RangeAreaComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RangeAreaComponent, "g[aclRangeArea]", never, { "curveType": "curveType"; }, { "mouseMoveEvent": "mouseMoveEvent"; "mouseLeaveEvent": "mouseLeaveEvent"; "mouseDownEvent": "mouseDownEvent"; "mouseUpEvent": "mouseUpEvent"; "clickEvent": "clickEvent"; }, never, never, false>;
}
export {};
