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;