import * as React from 'react';
import * as DialogPrimitive from '@radix-ui/react-dialog';
export type ModalSize = 'small' | 'medium' | 'large';
declare const ModalRoot: React.FC<DialogPrimitive.DialogProps>;
declare const ModalTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
declare const ModalPortal: React.FC<DialogPrimitive.DialogPortalProps>;
declare const ModalClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
declare const ModalOverlay: {
    ({ className, ...props }: React.ComponentPropsWithRef<typeof DialogPrimitive.Overlay>): React.JSX.Element;
    displayName: string;
};
interface ModalContentProps extends React.ComponentPropsWithRef<typeof DialogPrimitive.Content> {
    /** 크기 (small: 400px, medium: 600px, large: 1200px) */
    size?: ModalSize;
    /** 커스텀 너비 (size 기본값 덮어씀) */
    width?: string | number;
}
declare const ModalContent: {
    ({ children, className, size, width, style, ...props }: ModalContentProps): React.JSX.Element;
    displayName: string;
};
interface ModalHeaderProps extends React.ComponentPropsWithRef<'div'> {
    /** 크기 (ModalContent에서 상속받은 값 덮어씀) */
    size?: ModalSize;
    /** 닫기 버튼 표시 여부 */
    showCloseButton?: boolean;
    /** 하단 border 표시 여부 */
    showBorder?: boolean;
    /** 닫기 버튼 접근성 라벨 */
    closeButtonLabel?: string;
    /** 닫기 버튼 왼쪽에 렌더될 우측 콘텐츠 영역 */
    rightContent?: React.ReactNode;
}
declare const ModalHeader: {
    ({ className, children, size: sizeProp, showCloseButton, showBorder, closeButtonLabel, rightContent, ...props }: ModalHeaderProps): React.JSX.Element;
    displayName: string;
};
declare const ModalTitle: {
    ({ className, ...props }: React.ComponentPropsWithRef<typeof DialogPrimitive.Title>): React.JSX.Element;
    displayName: string;
};
declare const ModalDescription: {
    ({ className, ...props }: React.ComponentPropsWithRef<typeof DialogPrimitive.Description>): React.JSX.Element;
    displayName: string;
};
interface ModalBodyProps extends React.ComponentPropsWithRef<'div'> {
    /** 크기 (ModalContent에서 상속받은 값 덮어씀) */
    size?: ModalSize;
}
declare const ModalBody: {
    ({ className, size: sizeProp, ...props }: ModalBodyProps): React.JSX.Element;
    displayName: string;
};
interface ModalFooterProps extends React.ComponentPropsWithRef<'div'> {
    /** 크기 (ModalContent에서 상속받은 값 덮어씀) */
    size?: ModalSize;
}
declare const ModalFooter: {
    ({ className, size: sizeProp, ...props }: ModalFooterProps): React.JSX.Element;
    displayName: string;
};
export { ModalRoot, ModalTrigger, ModalPortal, ModalClose, ModalOverlay, ModalContent, ModalHeader, ModalTitle, ModalDescription, ModalBody, ModalFooter, };
export type { ModalContentProps, ModalHeaderProps, ModalBodyProps, ModalFooterProps, };
//# sourceMappingURL=Modal.d.ts.map