import { strokeDashTypes } from "@react-financial-charts/core";
import * as React from "react";
export interface StraightLineProps {
    readonly x1Value: any;
    readonly x2Value: any;
    readonly y1Value: any;
    readonly y2Value: any;
    readonly interactiveCursorClass?: string;
    readonly strokeStyle: string;
    readonly strokeWidth?: number;
    readonly strokeDasharray?: strokeDashTypes;
    readonly type: "XLINE" | "RAY" | "LINE";
    readonly onEdge1Drag?: any;
    readonly onEdge2Drag?: any;
    readonly onDragStart?: (e: React.MouseEvent, moreProps: any) => void;
    readonly onDrag?: (e: React.MouseEvent, moreProps: any) => void;
    readonly onDragComplete?: (e: React.MouseEvent, moreProps: any) => void;
    readonly onHover?: (e: React.MouseEvent, moreProps: any) => void;
    readonly onUnHover?: (e: React.MouseEvent, moreProps: any) => void;
    readonly defaultClassName?: string;
    readonly r?: number;
    readonly edgeFill?: string;
    readonly edgeStroke?: string;
    readonly edgeStrokeWidth?: number;
    readonly withEdge?: boolean;
    readonly tolerance?: number;
    readonly selected?: boolean;
}
export declare class InteractiveStraightLine extends React.Component<StraightLineProps> {
    static defaultProps: {
        onEdge1Drag: () => void;
        onEdge2Drag: () => void;
        edgeStrokeWidth: number;
        edgeStroke: string;
        edgeFill: string;
        r: number;
        withEdge: boolean;
        strokeWidth: number;
        strokeDasharray: string;
        children: () => void;
        tolerance: number;
        selected: boolean;
    };
    render(): JSX.Element;
    private readonly isHover;
    private readonly drawOnCanvas;
}
export declare function isHovering2(start: any, end: any, [mouseX, mouseY]: any, tolerance: any): boolean;
export declare function isHovering({ x1Value, y1Value, x2Value, y2Value, mouseXY, type, tolerance, xScale, yScale }: any): boolean;
export declare function getSlope(start: any, end: any): number | undefined;
export declare function getYIntercept(m: any, end: any): any;
export declare function generateLine({ type, start, end, xScale, yScale }: any): {
    x1: any;
    y1: any;
    x2: any;
    y2: any;
};
