import { type HTMLAttributes } from "react";
import { type TextOverflow } from "../cssUtils.js";
import { type SimplePosition } from "../positioning/types.js";
import { type CSSTransitionClassNames, type CSSTransitionComponentProps, type SSRTransitionOptions, type TransitionActions, type TransitionTimeout } from "../transition/types.js";
/**
 * The base props for the `Tooltip` component. This can be extended when
 * creating custom tooltip implementations.
 *
 * @since 2.8.0 Supports the `RenderConditionalPortalProps`
 * @since 6.0.0 The `id` prop is optional.
 * @since 6.0.0 Removed `lineWrap` for `textOverflow`
 * @since 6.0.0 No longer supports the `RenderConditionalPortalProps` other than
 * `portal` with the `disablePortal` prop.
 */
export interface TooltipProps extends HTMLAttributes<HTMLSpanElement>, CSSTransitionComponentProps, SSRTransitionOptions, TransitionActions {
    visible: boolean;
    /**
     * Set this to `true` to use a smaller font size and padding on the tooltip
     * and a smaller gap between the tooltip and tooltipped element.
     *
     * @defaultValue `false`
     */
    dense?: boolean;
    /**
     * @defaultValue `"below"`
     */
    position?: SimplePosition;
    /**
     * @see {@link CSSTransitionComponentProps.temporary}
     * @defaultValue `true`
     */
    temporary?: boolean;
    /**
     * Set this to `"nowrap"` for tooltips that are positioned near the edge of
     * the viewport that have a position of `"above"` or `"below"` so that the
     * tooltip no longer aligns to the center of the tooltipped element.
     *
     * Set this to `"ellipsis"` if the tooltip should only show a single line of
     * text and ellipsis once it has reached the max tooltip width.
     *
     * @defaultValue `"allow"`
     */
    textOverflow?: TextOverflow;
    /**
     * @see {@link CSSTransitionComponentProps.timeout}
     * @defaultValue `DEFAULT_TOOLTIP_TIMEOUT`
     */
    timeout?: TransitionTimeout;
    /**
     * @see {@link CSSTransitionComponentProps.classNames}
     * @defaultValue `DEFAULT_TOOLTIP_CLASSNAMES`
     */
    classNames?: CSSTransitionClassNames;
}
/**
 * **Client Component**
 *
 * This is the base tooltip component that can only be used to render a tooltip
 * with an animation when the visibility changes. If this component is used, you
 * will need to manually add all the event listeners and triggers to change the
 * `visible` prop.
 *
 * @example Simple Usage
 * ```tsx
 * import { Button, useTooltip, Tooltip } from "@react-md/core";
 *
 * function Example() {
 *   const { elementProps, tooltipProps } = useTooltip();
 *
 *   return (
 *     <>
 *       <Button {...elementProps}>Button</Button>
 *       <Tooltip {...tooltipProps}>
 *         Tooltip Content
 *       </Tooltip>
 *     </>
 *   );
 * }
 * ```
 */
export declare const Tooltip: import("react").ForwardRefExoticComponent<TooltipProps & import("react").RefAttributes<HTMLSpanElement>>;
