import { ForwardRefExoticComponent, HTMLAttributes, ReactNode, RefAttributes } from 'react'; import { Drawer } from '@xelene/vaul-with-scroll-fix'; import { ModalClose } from './components/ModalClose/ModalClose'; import { ModalHeader } from './components/ModalHeader/ModalHeader'; export interface ModalProps extends Omit, 'onAnimationEnd'> { /** Controls the displayed state of the modal, enabling external management. */ open?: boolean; /** Callback fired upon state change, facilitating open/close state synchronization. */ onOpenChange?: (open: boolean) => void; /** Custom header component to display at the top of the modal. */ header?: ReactNode; /** Custom component for the modal's overlay backdrop. */ overlayComponent?: ReactNode; /** Component or element used to trigger the modal's visibility. */ trigger?: ReactNode; /** Enables nesting within another drawer component, allowing for hierarchical structures. */ nested?: boolean; /** Threshold for swipe actions to trigger modal closure, expressed as a decimal between 0 and 1. */ closeThreshold?: number; /** Debounce duration after scrolling within the modal before it can be closed through swipe actions. */ scrollLockTimeout?: number; /** Governs interaction with background elements when the modal is open. */ modal?: boolean; /** Prevents automatic scroll position restoration when the modal closes, preserving user context. */ preventScrollRestoration?: boolean; /** Defines snap points for modal positioning, supporting percentages of screen height or pixel values. */ snapPoints?: (number | string)[]; /** Snap point index at which the overlay begins to fade, enhancing visual cues for modal depth. */ fadeFromIndex?: never; /** Determines if the modal can be closed by user interactions */ dismissible?: boolean; } type ModalWithComponents = ForwardRefExoticComponent> & { Header: typeof ModalHeader; Overlay: typeof Drawer.Overlay; Close: typeof ModalClose; }; /** * Modal component, providing a flexible dialog framework with customizable content and interaction models. * It leverages the Drawer component from 'vaul' for its base functionality, enhanced with additional properties * and behaviors specific to modal dialogues, such as overlay management and nested modals. */ export declare const Modal: ModalWithComponents; export {}; //# sourceMappingURL=Modal.d.ts.map