import { FunctionComponent } from 'react';
import { AnnotationDimension, AnnotationPinType } from '../types';
interface AnnotationLineProps {
    dimension: AnnotationDimension;
    color: string;
    strokeWidth: number;
    startValue: number;
    stopValue: number;
    length: number;
    pin: AnnotationPinType;
    id: string;
    onHover?: (forceHide: boolean) => void;
}
/**
 *  This class draws the annotation itself.  Another handles the tooltip. (AnnotationTooltip)
 *
 *  If the annotation is a 'y' annotation, then this class *only* draws a point annotation
 *  (a single dotted line) (at the start value) with an optional pin on the right.
 *
 *  If it the annotation is an 'x' annotation, if the startTime === stopTime
 *  then this class draws a single dotted line, with an optional pin at the top
 *
 *  If startTime < stopTime
 *  then this draws a line at the start, another at the end, with a 'hat' over it that is
 *  entirely clickable; along with an overlay with 10% opacity that is NOT clickable.
 *
 *  The overlay is not clickable to allow overlapping point annotations.
 *  If there are two overlapping range annotations (or any type of annotation, range or point)
 *  then the annotation that was drawn last is clickable.  (they stack).  They are drawn in the order that
 *  the annotations are created; not in their time order.
 *
 *  To make any element of the annotation line clickable, then that element needs to have the 'props.id' assigned to its id,
 *  and (nice to have, but not required for clicking, but this shows the user that it
 *  is clickable (affordance)), the style should get changed;
 *
 *  add to the 'createElement' object:
 *
 *  style: {cursor: 'pointer'}
 *
 *  the 'onHover' method is for firing when the user is hovering over
 *  a clickable area.  it sends a 'true' when the user entered a clickable area
 *  and a 'false' when it leaves.  This is so if there is a hover legend showing,
 *  then it will be hidden while on the clickable area.
 *
 *  adding the 'onHover' to the tops of the annotations that are clickable:
 *  the range rectangle and the 'start' pin for vertical annotation lines.
 *
 * */
export declare const AnnotationLine: FunctionComponent<AnnotationLineProps>;
export default AnnotationLine;
