import { MutableRefObject } from 'react';
export declare type Point = [number, number, any, OptionsType?];
export declare type OptionsType = {
    highlightPoint?: boolean;
};
export declare type LinePathData = {
    series: Array<Point>;
    color: string;
    strokeWidth: number;
    key: string;
    style?: React.CSSProperties;
    showLastPointBlinking?: boolean;
    strokeOpacity: number;
    isSeriesToScale: boolean;
    allowToolTip: boolean;
    areaProps?: AreaProps;
    hasHighlightedPoints?: boolean;
    hoverExactPoint?: boolean;
    hoverPointStrokeMultiplier?: number;
    highlightPointStrokeMultiplier?: number;
    isDraggable?: boolean;
    draggableConfig?: {
        fill?: string;
        lineColor?: string;
        negativeLineColor?: string;
        toY?: boolean;
    };
    labelData?: {
        showLabel: boolean;
        labelText: string;
        textSvgProps: React.SVGProps<SVGTextElement>;
        rectSvgProps: React.SVGProps<SVGRectElement>;
        labelRefs: {
            underlyinglabelTextRef: MutableRefObject<SVGTextElement | null>;
            underlyinglabelRectRef: MutableRefObject<SVGRectElement | null>;
        };
        labelPosition: {
            x: number;
            y: number;
        };
    };
};
export declare type AreaProps = {
    toX?: number;
    toY?: number;
    fill: string;
    opacity: number;
    style?: React.CSSProperties;
};
export declare type LineGraphProps = {
    linePaths: Array<LinePathData>;
    width: number;
    height: number;
    paddingVert: number;
    paddingHorz: number;
    onMouseEnter?: (td: ToolTipData) => void;
    onMouseLeave?: () => void;
    onMouseUp?: () => void;
    onMouseDown?: () => void;
    toolTipLeftUpdated?: number;
    toolTipTopUpdated?: number;
    getTooltipUI?: (toolTipData: ToolTipData) => JSX.Element;
    getDefs?: () => JSX.Element;
    maxX?: number;
    minX?: number;
    maxY?: number;
    minY?: number;
    isDragAllowed?: boolean;
};
export declare type XYCoords = {
    x: number;
    y: number;
};
export declare type ToolTipSeriesData = {
    point: Point;
    tooltipLeft: number;
    tooltipTop: number;
    isPerfectIntersection: boolean;
    intersectionPointOnLine: HoveredPointData;
    dragStartPoint?: Point;
    dragTooltipLeft?: number;
};
export declare type HoveredPointData = {
    coords: XYCoords;
    invertedValues: XYCoords;
};
export declare type ToolTipData = {
    seriesData: ToolTipSeriesData[];
    otherData: HoveredPointData;
};
export declare type DragData = {
    startPoint: number;
    endPoint?: number;
};
