import { type ReactNode, type CSSProperties, type HTMLAttributes } from 'react'; import { type SColor } from '../../lib/color'; import { type SIconName } from '../SIcon'; export type STooltipType = 'default' | 'danger' | 'warning' | 'accent'; export type STooltipPlacement = 'top' | 'bottom' | 'left' | 'right'; export type STooltipTrigger = 'hover' | 'click' | 'none'; export interface STooltipProps { /** 툴팁 본문 (ReactNode). message 보다 우선 */ content?: ReactNode; /** 툴팁 본문 줄 목록 (각 항목이 한 줄, HTML 문자열 허용 — innerHTML 렌더링) */ message?: string[]; /** 열림 상태 (제어). 지정하면 controlled — hover·click·`ref.show()/hide()` 가 이 값을 덮지 않는다 */ open?: boolean; /** 열림 상태 변경 요청. 트리거·자동 닫힘·X 버튼·ref 모든 경로에서 호출된다 (controlled 여부와 무관) */ onOpenChange?: (open: boolean) => void; /** 트리거 방식. `'none'` = 트리거 없음 — `open` 으로만 제어되는 상시 표시 툴팁 */ trigger?: STooltipTrigger; /** 표시 방향 */ placement?: STooltipPlacement; /** 앵커와의 간격(px) */ sideOffset?: number; /** 배경/텍스트 색상 타입 */ tooltipType?: STooltipType; /** 우측 상단 닫기 버튼. 켜면 자동 닫힘이 비활성화되고 X(또는 hide())로만 닫힘 (hover·click 공통, `trigger='none'` 에서는 무시) */ useClose?: boolean; /** 비활성 — 트리거만 렌더하고 툴팁을 열지 않음 */ disabled?: boolean; /** 커스텀 트리거. 없으면 아이콘 트리거를 렌더 */ children?: ReactNode; /** 기본(아이콘) 트리거 설정 */ icon?: SIconName; iconSize?: number; /** 트리거 아이콘 색상. 팔레트 키(`grey_65`, `red_95` …) 또는 임의 CSS 색상 */ color?: SColor; /** 접근성 레이블 */ ariaLabel?: string; className?: string; triggerClassName?: string; style?: CSSProperties; /** 툴팁 본문 요소에 그대로 전달 (`role`, `aria-*` 등). Radix 기본 `role="dialog"` 를 덮어쓸 수 있다 */ contentProps?: HTMLAttributes; } /** ref로 노출되는 UX 메서드 (sd-tooltip @Method show/hide 대응) */ export interface STooltipHandle { /** 툴팁을 표시합니다. */ show: () => void; /** 툴팁을 숨깁니다. */ hide: () => void; } export declare const STooltip: import("react").ForwardRefExoticComponent>;