import { RemoveScroll } from "react-remove-scroll"; import { type PortalProps } from "../Portal"; import type { TransitionProps } from "../Transition"; import type { ThemeRadius, ThemeShadow, ThemeSize } from "../theme.types"; type RemoveScrollProps = Omit, "children">; export interface ModalRootProps extends Omit, "title"> { /** If set modal/drawer will not be unmounted from the DOM when it is hidden, `display: none` styles will be added instead * @default false */ keepMounted?: boolean; /** Determines whether modal/drawer is opened */ opened: boolean; /** Called when modal/drawer is closed */ onClose: () => void; /** Id used to connect modal/drawer with body and title */ id?: string; /** Determines whether scroll should be locked when `opened={true}` * @default true */ lockScroll?: boolean; /** Determines whether focus should be trapped * @default true */ trapFocus?: boolean; /** Determines whether the component should be rendered inside `Portal` * @default true */ withinPortal?: boolean; /** Props passed down to the Portal component when `withinPortal` is set */ portalProps?: Omit; /** Modal/drawer content */ children?: React.ReactNode; /** Determines whether the modal/drawer should be closed when user clicks on the overlay * @default true */ closeOnClickOutside?: boolean; /** Props added to the `Transition` component that used to animate overlay and body, use to configure duration and animation type * @default{ duration: 200, transition: 'fade' } */ transitionProps?: Omit; /** Determines whether `onClose` should be called when user presses the escape key * @default true */ closeOnEscape?: boolean; /** Determines whether focus should be returned to the last active element when `onClose` is called * @default true */ returnFocus?: boolean; /** `z-index` CSS property of the root element * @default 200 */ zIndex?: string | number; /** Key of `theme.shadows` or any valid CSS box-shadow value * @default "xl" */ shadow?: ThemeShadow; /** Key of `theme.spacing` or any valid CSS value to set content, header and footer padding * @default "md" */ padding?: ThemeSize; /** Controls width of the content area * @default "md" */ size?: ThemeSize; /** Props passed down to react-remove-scroll, can be used to customize scroll lock behavior */ removeScrollProps?: RemoveScrollProps; /** Key of `theme.radius` or any valid CSS value to set `border-radius` * @default "md" */ radius?: ThemeRadius; /** Determines whether the modal should be centered vertically * @default false */ centered?: boolean; /** Determines whether the modal should be full screen * @default false */ fullScreen?: boolean; yOffset?: string | number; } export declare function ModalRoot(props: ModalRootProps): import("react").JSX.Element; export {};