import * as _heroui_aria_utils from '@heroui/aria-utils'; import { OverlayOptions } from '@heroui/aria-utils'; import * as react from 'react'; import { ReactNode } from 'react'; import * as _heroui_system from '@heroui/system'; import { HTMLHeroUIProps, PropGetter } from '@heroui/system'; import { SlotsToClasses, PopoverVariantProps } from '@heroui/theme'; import { AriaTooltipProps } from '@react-types/tooltip'; import { OverlayTriggerProps } from '@react-types/overlays'; import { AriaOverlayProps } from '@react-aria/overlays'; import { HTMLMotionProps } from 'framer-motion'; import { ReactRef } from '@heroui/react-utils'; interface Props extends Omit { /** * Ref to the DOM node. */ ref?: ReactRef; /** * The children to render. Usually a trigger element. */ children?: ReactNode; /** * The content of the tooltip. */ content?: string | React.ReactNode; /** * Whether the tooltip should be disabled, independent from the trigger. */ isDisabled?: boolean; /** * The delay time in ms for the tooltip to show up. * @default 0 */ delay?: number; /** * The delay time in ms for the tooltip to hide. * @default 500 */ closeDelay?: number; /** * By default, opens for both focus and hover. Can be made to open only for focus. */ trigger?: "focus"; /** * The props to modify the framer motion animation. Use the `variants` API to create your own animation. */ motionProps?: Omit, "ref">; /** * The container element in which the overlay portal will be placed. * @default document.body */ portalContainer?: Element; /** * List of dependencies to update the position of the tooltip. * @default [] */ updatePositionDeps?: any[]; /** * Classname or List of classes to change the classNames of the element. * if `className` is passed, it will be added to the base slot. * * @example * ```ts * * ``` */ classNames?: SlotsToClasses<"base" | "arrow" | "content">; } type UseTooltipProps = Props & AriaTooltipProps & AriaOverlayProps & OverlayTriggerProps & OverlayOptions & PopoverVariantProps; declare function useTooltip(originalProps: UseTooltipProps): { Component: _heroui_system.As; content: ReactNode; children: ReactNode; isOpen: boolean; triggerRef: react.RefObject; showArrow: boolean; portalContainer: Element | undefined; placement: _heroui_aria_utils.OverlayPlacement; disableAnimation: boolean; isDisabled: boolean | undefined; motionProps: Omit, "ref"> | undefined; getTooltipContentProps: PropGetter; getTriggerProps: PropGetter; getTooltipProps: PropGetter; }; type UseTooltipReturn = ReturnType; export { type UseTooltipProps, type UseTooltipReturn, useTooltip };