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