import * as React from 'react';
import type { BarProps } from '@visx/shape/lib/shapes/Bar';
import type { LineProps } from '@visx/shape/lib/shapes/Line';
import type { AddSVGProps } from '@visx/shape/lib/types';
import type { WithTooltipProvidedProps } from '@visx/tooltip/lib/enhancers/withTooltip';
import type { ScaleBand, ScaleLinear } from '@visx/vendor/d3-scale';
import type { HierarchicalSpanAndAnnotation } from '../types';
interface SharedAnnotationProps {
    xScale: ScaleLinear<number, number, never>;
    yScale: ScaleBand<string>;
    yMax: number;
    titleColor?: string;
    title?: string;
    annotateAt?: 'top';
    data: HierarchicalSpanAndAnnotation;
    showTooltip: (data: Partial<WithTooltipProvidedProps<HierarchicalSpanAndAnnotation>>) => void;
    hideTooltip: () => void;
    depth?: number;
    hasChildren?: boolean;
    isExpanded?: boolean;
    onToggleExpansion?: (spanId: string) => void;
    isVisible?: boolean;
}
interface InteractiveLineSpanProps extends SharedAnnotationProps, Omit<AddSVGProps<LineProps, SVGLineElement>, 'ref'> {
    type: 'line';
    onClick: () => void;
    scrollContainerRef: React.RefObject<HTMLDivElement | null>;
}
interface InteractiveBarSpanProps extends SharedAnnotationProps, Omit<AddSVGProps<BarProps, SVGRectElement>, 'ref'> {
    type: 'bar';
    onClick: () => void;
    scrollContainerRef: React.RefObject<HTMLDivElement | null>;
}
type InteractiveSpanProps = InteractiveLineSpanProps | InteractiveBarSpanProps;
declare const InteractiveSpan: React.FC<InteractiveSpanProps>;
export default InteractiveSpan;
