import { default as React } from 'react'; export interface ModalProps { children: React.ReactNode; $isOpen: boolean; $onClose: () => void; $title?: string; $width?: number; $hideCloseButton?: boolean; /** Escape hatches for app-level restyling, both applied to the overlay root. Note that wrapping with styled(Modal) does NOT work for the $-props API (styled-components strips transient props before they reach the wrapped component), so restyle by targeting a passed class instead. The inner parts expose stable class hooks: .modal-inner, .modal-close, .modal-title, .modal-content. */ className?: string; style?: React.CSSProperties; /** Joins the modal stack (default true): a Modal or `useModalLayer` cover opened over this one hides it until it closes again. Pass false to let this modal and the ones over it show at the same time. */ $stack?: boolean; } /** * Puts a full-page layer that is not a Modal (an outage screen, a sign-in * wall) on the modal stack while `open`, so an open Modal fades away under * it and returns once it is gone. Returns whether another layer covers it. */ declare function useModalLayer(open: boolean): boolean; declare function Modal({ children, $isOpen, $onClose, $title, $width, $hideCloseButton, className, style, $stack, }: ModalProps): React.ReactPortal | null; export { Modal, useModalLayer };