import * as React from 'react';
import { ITooltipHost, ITooltipProps, TooltipDelay } from '@fluentui/react/lib/Tooltip';
import { ITheme } from '@fluentui/react';
interface ISVGTooltipTextProps {
    /**
     * Number of milliseconds to delay closing the tooltip, so that the user has time to hover over
     * the tooltip and interact with it. Hovering over the tooltip will count as hovering over the
     * host, so that the tooltip will stay open if the user is actively interacting with it.
     */
    closeDelay?: number;
    /**
     * Content to display in the Tooltip.
     */
    content?: string;
    /**
     * Length of delay before showing the tooltip on hover.
     * @defaultvalue TooltipDelay.medium
     */
    delay?: TooltipDelay;
    /**
     * Additional properties to pass through for Tooltip.
     */
    tooltipProps?: ITooltipProps;
    /**
     * Additional properties to pass through for SVG <text>.
     */
    textProps?: React.SVGAttributes<SVGTextElement>;
    /**
     * Max width of text
     */
    maxWidth?: number;
    /**
     * Max height of text
     */
    maxHeight?: number;
    /**
     * Pass false to make prevent the tooptip from receiving focus through keyboard
     * Eg: In Pie Chart, the focus should only land on the arcs and not on the text to
     * avoid repitition of the same datapoint
     * @defaultvalue true
     */
    shouldReceiveFocus?: boolean;
    /**
     * Pass true to show tooltip directly
     * Eg: In Pie Chart, the tooltip is shown when the arc is focussed, so the prop is set to true,
     * to directly show the tooltip from this component
     * @defaultvalue false
     */
    isTooltipVisibleProp?: boolean;
    /**
     * Function to wrap text within specified width and height
     * and return a boolean value indicating whether the text overflowed
     */
    wrapContent?: (content: string, id: string, maxWidth: number, maxHeight?: number) => boolean;
    /**
     * Theme provided by High Order Component
     */
    theme?: ITheme;
    /**
     * @default false
     * Prop to selectively display the tooltip background
     */
    showBackground?: boolean;
}
interface ISVGTooltipTextState {
    isTooltipVisible: boolean;
    isOverflowing: boolean;
    textX?: number;
    textY?: number;
    textWidth?: number;
    textHeight?: number;
}
/**
 * Component to render an SVG text element with an optional tooltip.
 * The tooltip appears on hovering and focusing the element when its content overflows.
 */
export declare class SVGTooltipText extends React.Component<ISVGTooltipTextProps, ISVGTooltipTextState> implements ITooltipHost {
    static defaultProps: {
        delay: TooltipDelay;
    };
    private static _currentVisibleTooltip;
    /** The element that gets the hover events */
    private _tooltipHost;
    private _async;
    private _dismissTimerId;
    private _openTimerId;
    private _tooltipHostId;
    private _ignoreNextFocusEvent;
    constructor(props: ISVGTooltipTextProps);
    render(): React.ReactNode;
    componentDidMount(): void;
    componentDidUpdate(prevProps: Readonly<ISVGTooltipTextProps>): void;
    componentWillUnmount(): void;
    show: () => void;
    dismiss: () => void;
    private _measureText;
    private _getTargetElement;
    private _onTooltipFocus;
    private _onTooltipBlur;
    private _onTooltipMouseEnter;
    private _onTooltipMouseLeave;
    private _onTooltipKeyDown;
    private _clearDismissTimer;
    private _clearOpenTimer;
    private _hideTooltip;
    private _toggleTooltip;
    private _getDelayTime;
    private _wrapContent;
}
export {};
