import { type ReactNode, type CSSProperties } from 'react'; import { type SColor } from '../../lib/color'; import { type SIconName } from '../SIcon'; export type SPopoverPlacement = 'top' | 'bottom' | 'left' | 'right'; /** 색상 타입 — default: 다크 배경 / danger·warning·accent: 라이트 배경 (component.popover 토큰) */ export type SPopoverType = 'default' | 'danger' | 'warning' | 'accent'; export interface SPopoverProps { /** 표시 여부 (제어). onOpenChange 와 함께 사용 */ open?: boolean; /** 기본 표시 여부 (비제어) */ defaultOpen?: boolean; /** 표시 상태 변경 (sdShowChange) */ onOpenChange?: (open: boolean) => void; /** 표시 방향 */ placement?: SPopoverPlacement; /** 색상 타입 (default: 다크 / danger·warning·accent: 라이트 배경) */ type?: SPopoverType; /** 메뉴 제목 (필수) */ menuTitle: string; /** 제목 좌측 아이콘 (선택) */ titleIcon?: SIconName; /** 본문 내용 */ children?: ReactNode; /** 커스텀 트리거. 없으면 아이콘 트리거 렌더 */ trigger?: ReactNode; /** 기본(아이콘) 트리거 설정 */ icon?: SIconName; iconSize?: number; /** 트리거 아이콘 색상. 팔레트 키(`grey_65`, `red_95` …) 또는 임의 CSS 색상 */ color?: SColor; /** 하단 좌측 링크 레이블 (선택). 스타일은 chevron 링크로 고정 */ leftLinkLabel?: string; /** 하단 좌측 링크 클릭 */ onLeftLinkClick?: () => void; /** 하단 우측 버튼 레이블 (필수). 색상/스타일은 type 별로 고정 */ buttonLabel: string; /** 하단 우측 버튼 클릭 */ onButtonClick?: () => void; ariaLabel?: string; menuClassName?: string; style?: CSSProperties; } /** * SPopover — sd-popover 포팅 (Radix SPopover 기반). * 아이콘/커스텀 트리거, menuTitle, 본문, 하단 leftLink(STextLink)+button(SButton) 푸터. * 색상은 `--cmp-popover-default-*` 토큰(다크 배경). */ export declare function SPopover({ open, defaultOpen, onOpenChange, placement, type, menuTitle, titleIcon, children, trigger, icon, iconSize, color, leftLinkLabel, onLeftLinkClick, buttonLabel, onButtonClick, ariaLabel, menuClassName, style, }: SPopoverProps): import("react").JSX.Element;