import { PropsWithChildren } from 'react';
import { Size } from '../ModalContainer';
export interface ModalProps extends PropsWithChildren {
isOpen: boolean;
rootId?: string;
variant?: 'default' | 'full' | 'bottom';
size?: Size;
overflow?: 'auto' | 'visible' | 'hidden' | 'scroll';
isBackgroundBlack?: boolean;
isFixedHeight?: boolean;
isPreventScroll?: boolean;
needCleanup?: boolean;
className?: string;
onClose?: () => void;
}
/**
* 모달 창을 표시하는 컴포넌트입니다.
*
* @component
* @param {object} props - 모달 컴포넌트 속성
* @param {boolean} props.isOpen - 모달의 표시 여부를 결정합니다
* @param {string} [props.rootId] - 모달이 마운트될 DOM 요소의 ID입니다
* @param {'default' | 'full' | 'bottom'} [props.variant='default'] - 모달의 형태를 지정합니다 (default, full, bottom)
* @param {'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full'} [props.size='md'] - 모달의 크기를 지정합니다 (xs, sm, md, lg, xl, full)
* @param {'auto' | 'visible' | 'hidden' | 'scroll'} [props.overflow='auto'] - 모달 내용의 오버플로우 처리 방식을 지정합니다 (auto, visible, hidden, scroll)
* @param {boolean} [props.isBackgroundBlack=true] - 배경색을 검정색으로 할지 여부를 결정합니다
* @param {boolean} [props.isFixedHeight] - 바텀 시트 모달의 고정 높이 사용 여부를 결정합니다
* @param {boolean} [props.isPreventScroll=true] - 모달 외부 스크롤 방지 여부를 결정합니다
* @param {boolean} [props.needCleanup=true] - 모달이 닫힐 때 Portal 정리 여부를 결정합니다
* @param {string} [props.className] - 모달 컨테이너에 적용될 클래스 이름입니다
* @param {() => void} [props.onClose] - 모달이 닫힐 때 실행될 콜백 함수입니다
* @param {React.ReactNode} props.children - 모달 내부에 표시될 컨텐츠입니다
*
* @example
* // 기본 모달
*
* 모달 내용
*
*
* // 전체 화면 모달
*
* 전체 화면 모달 내용
*
*
* // 바텀 시트 모달
*
* 바텀 시트 내용
*
*/
declare const Modal: ({ isOpen, rootId, variant, size, overflow, isBackgroundBlack, isFixedHeight, isPreventScroll, className, onClose, needCleanup, children, }: ModalProps) => import("react/jsx-runtime").JSX.Element;
export { Modal };