import { type HTMLAttributes, type ReactElement, type Ref } from "react";
import { type CSSTransitionClassNames, type CSSTransitionComponentProps, type SSRTransitionOptions, type TransitionActions, type TransitionTimeout } from "../transition/types.js";
import { type TooltipClassNameOptions } from "./styles.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.
* @since 6.3.1 Extends TooltipClassNameOptions for CSSProperties module
* augmentation.
*/
export interface TooltipProps extends HTMLAttributes, TooltipClassNameOptions, CSSTransitionComponentProps, SSRTransitionOptions, TransitionActions {
ref?: Ref;
visible: boolean;
/**
* @see {@link CSSTransitionComponentProps.temporary}
* @defaultValue `true`
*/
temporary?: boolean;
/**
* @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 } from "@react-md/core/button/Button";
* import { Tooltip } from "@react-md/core/tooltip/Tooltip";
* import { useTooltip } from "@react-md/core/tooltip/useTooltip";
*
* function Example() {
* const { elementProps, tooltipProps } = useTooltip();
*
* return (
* <>
*
*
* Tooltip Content
*
* >
* );
* }
* ```
*
* @see {@link https://react-md.dev/components/tooltip | Tooltip Demos}
*/
export declare function Tooltip(props: TooltipProps): ReactElement;