import React, { ReactNode } from 'react'; import { Placement } from '../../styles'; import { TooltipSize } from './types'; export type OpenerTriggerEvent = 'hover' | 'click' | 'none'; export type TooltipColor = 'neutral' | 'accent' | 'negative'; /** * 툴팁이 `open` prop에 의해 변경된 경우에는 `reason`이 `null`이 됩니다. */ export type TooltipOpenChangeReason = 'click' | 'closeClick' | 'overlayClick' | 'hover' | null; export type TooltipContentWithCloseAction = (action: { close(): void; }) => ReactNode; export interface TooltipProps { /** reference element를 구할 수 있는 컴포넌트여야 합니다. */ children: React.ReactNode; className?: string; content?: ReactNode | TooltipContentWithCloseAction; /** * outside 영역 클릭시 닫힘 사용 여부 * @default true */ shouldCloseOnOutsideClick?: boolean; /** @default 'hover' */ openerTriggerEvent?: OpenerTriggerEvent; /** @default 'top' */ placement?: Exclude; /** @default getZIndex('tooltip') */ zIndex?: number; /** * main app node 바깥영역으로 생성할지 여부 * @default false */ noUsePortal?: boolean; /** * Hover 후 닫히는 지연 시간 * @default 250 */ closeDelay?: number; open?: boolean; /** @default 'medium' */ size?: TooltipSize; /** @default 'accent' */ color?: TooltipColor; onClose?: (reason: TooltipOpenChangeReason) => void; onOpen?: (reason: TooltipOpenChangeReason) => void; } export declare const Tooltip: ({ placement, children, className, content, shouldCloseOnOutsideClick, openerTriggerEvent, open: openProp, size, color, zIndex, noUsePortal, closeDelay, onClose, onOpen, }: TooltipProps) => import("@emotion/react/jsx-runtime").JSX.Element;