import { type ReactNode } from 'react'; import { type SFooterButton } from '../SFooter'; export interface SActionModalProps { open?: boolean; onOpenChange?: (open: boolean) => void; /** 닫기(X) 버튼 클릭 (sdClose) */ onClose?: () => void; /** 백드롭·ESC로 안 닫히고 흔들림 (sd-modal-container persistent). **기본값 true** */ persistent?: boolean; modalTitle?: string; /** * 제목 오른쪽에 붙는 보조 설명 (sd-action-modal 의 header-sub-title 슬롯). * 문자열이면 서브텍스트 스타일로 렌더하고, 노드를 넘기면 그대로 배치한다. */ description?: ReactNode; /** * 하단 액션 버튼 (주 액션 1개). * 의도적으로 단수다 — 보조 버튼(취소·삭제 등)은 `footerLeft` 슬롯에 직접 배치한다. */ button?: SFooterButton; /** * footer 좌측 영역 (sd-action-modal 의 bottom-sub-content 슬롯). * 보조 버튼이나 안내 문구를 넣는다. 버튼을 하나 더 쓰고 싶을 때 여기에 SButton 을 넣는다. */ footerLeft?: ReactNode; width?: number | string; height?: number | string; children?: ReactNode; } /** * SActionModal — sd-action-modal 포팅. 헤더(제목·닫기) + 본문 + 하단 액션 버튼. * * 액션 버튼은 `button.onClick` 만 호출하고 모달을 닫지 않는다. 본문에서 API 를 호출하는 경우가 * 많아 성공 여부에 따라 닫힘 시점이 달라지므로, 닫는 책임은 사용하는 쪽에 둔다. * * `button` 은 의도적으로 단수다. 주 액션은 오른쪽에 하나만 두고, 보조 버튼은 `footerLeft` 슬롯에 * 소비자가 직접 배치한다. (buttons 배열 API 를 추가하지 말 것) */ export declare function SActionModal({ open, onOpenChange, onClose, persistent, modalTitle, description, button, footerLeft, width, height, children, }: SActionModalProps): import("react").JSX.Element;