import { CloseButtonProps, DrawerRootProps, ExtendComponent, Factory, MantineBreakpoint, MantineRadius, MantineShadow, MantineThemeComponent, ModalBaseOverlayProps, ModalRootProps, RemoveScroll } from '@mantine/core'; import { ComponentPropsWithRef, ReactNode } from 'react'; import { ScrollAreaComponent } from '../types'; import { VaulProps } from '../Vaul'; export type ResponsiveModalShowType = 'modal' | 'vaul' | 'drawer'; export type ResponsiveDialogContextValue = { type: ResponsiveModalShowType; close: () => void; }; declare const useResponsiveDialog: () => ResponsiveDialogContextValue; export interface ResponsiveDialogProps { opened: boolean; onClose: (value: boolean) => void; onCloseAnimationEnd?: () => void; trapFocus?: boolean; returnFocus?: boolean; lockScroll?: boolean; withCloseButton?: boolean; closeButtonProps?: CloseButtonProps; withOverlay?: boolean; overlayProps?: ModalBaseOverlayProps; closeOnClickOutside?: boolean; closeOnEscape?: boolean; shadow?: MantineShadow; zIndex?: number; radius?: MantineRadius | number; removeScrollProps?: Omit, 'children'>; scrollAreaComponent?: ScrollAreaComponent; matches?: Partial>; modalProps?: Partial>; drawerProps?: Partial>; vaulProps?: Partial>; title?: ReactNode; children: ReactNode | ((props: { close: () => void; type: ResponsiveModalShowType; opened: boolean; }) => ReactNode); footer?: ReactNode; footerProps?: Record; } export type ResponsiveDialogFactory = Factory<{ props: ResponsiveDialogProps; }>; declare const ResponsiveDialog: { (_props: ResponsiveDialogProps): import("react/jsx-runtime").JSX.Element; displayName: string; extend: (c: ExtendComponent) => MantineThemeComponent; }; export { ResponsiveDialog, useResponsiveDialog };