import { Component, MouseEvent, ReactElement, ReactNode, KeyboardEvent as ReactKeyboardEvent } from 'react';
import { Modifier } from '@popperjs/core';
import './tooltip.less';
import { ValueOf } from '../types';
export declare const TOOLTIP_DELAY_TYPES: {
    readonly NONE: "none";
    readonly FAST: "fast";
    readonly MEDIUM: "medium";
    readonly SLOW: "slow";
};
export type TooltipDelayType = ValueOf<typeof TOOLTIP_DELAY_TYPES>;
export declare const TOOLTIP_PLACEMENT_TYPES: {
    readonly BOTTOM: "bottom";
    readonly BOTTOM_END: "bottom-end";
    readonly BOTTOM_START: "bottom-start";
    readonly LEFT: "left";
    readonly LEFT_END: "left-end";
    readonly LEFT_START: "left-start";
    readonly RIGHT: "right";
    readonly RIGHT_END: "right-end";
    readonly RIGHT_START: "right-start";
    readonly TOP: "top";
    readonly TOP_END: "top-end";
    readonly TOP_START: "top-start";
};
export type TooltipPlacementsType = ValueOf<typeof TOOLTIP_PLACEMENT_TYPES>;
export type TooltipProps = {
    /** Tooltip reference element */
    children: ReactElement;
    /** Anything can be rendered: numbers, strings, elements of an array or fragment */
    content?: ReactNode;
    /** Extend the styles applied to the component */
    className?: string;
    /** Add test-id attribute to the tooltip's content */
    testId?: string;
    /** Add tooltipId attribute to the tooltip to help define aria-describedby */
    tooltipId?: string;
    /** Tooltip placement */
    placement?: TooltipPlacementsType;
    /** If true, the tooltip will be disabled */
    isDisabled?: boolean;
    /** The delay type which includes a period of time to wait before showing the tooltip */
    delayType?: TooltipDelayType;
    /** defines whether interactive tooltip should close on click inside of the popout container  */
    interactiveCloseOnClick?: boolean;
    /** Adds the doc-link to the tooltip content */
    docsLink?: ReactNode;
    /** Applies white background and respective text color changes to the tooltip */
    white?: boolean;
    /**
     * Popper modifies which will override default set of modifiers
     */
    popperModifiers?: Partial<Modifier<any, any>>[];
};
type TooltipState = {
    shouldOpen: boolean;
    openedWithKeyboard: boolean;
    interactiveElements: HTMLElement[];
};
/** Tooltip display informative text when users hover over or focus on element
 * [CAPITALIZATION] Use sentence case. If it is a complete sentence, use a period. If it is not, do not use a period. However, if it is followed by an action, like "Open documentation", make it a complete sentence and use a period.
 * @alpine-light-supported
 * @midnight-gray-supported
 */
declare class Tooltip extends Component<TooltipProps, TooltipState> {
    private childRef;
    private popper;
    private timer;
    private delay;
    private cursorInPopout?;
    private tooltipId?;
    static defaultProps: Omit<TooltipProps, 'children'>;
    constructor(props: TooltipProps);
    componentWillUnmount(): void;
    handleMouseOver: (event: MouseEvent<HTMLElement>) => void;
    handleMouseLeave: (event: MouseEvent<HTMLElement>) => void;
    handlePopoutMouseEnter: () => void;
    handlePopoutMouseLeave: () => void;
    handlePopoutContentClick: (event: MouseEvent<HTMLElement>) => void;
    handleClick: (event: MouseEvent<HTMLElement>) => any;
    handleOnKeydown: (event: KeyboardEvent) => void;
    handleKeydownTabEscOnMouseOver: (event: KeyboardEvent) => void;
    handlePopoutOnKeydown: (event: ReactKeyboardEvent<HTMLElement>) => void;
    handleKeyboardFocus: (event: ReactKeyboardEvent<HTMLElement>) => void;
    handleOnKeyboardBlur: (event: ReactKeyboardEvent<HTMLElement>) => void;
    handleLeaveAndCloseTooltip: () => void;
    handlePopperKeydown: (event: KeyboardEvent) => void;
    shouldTooltipBeRendered(): boolean;
    toggleTooltip(shouldOpen: boolean): void;
    render(): import("react/jsx-runtime").JSX.Element;
}
export default Tooltip;
