import * as React from 'react'; import { LegacyRef } from 'react'; import { IPositionProps } from '../../enhancers'; export declare type ModalProps = { /** * The content to render in the Modal. */ children: React.ReactNode; /** * The content to render in the footer slot. */ footer?: React.ReactElement | string; /** * Whether the Modal is open. */ isOpen: boolean; /** * Called when the Modal closes. */ onClose: () => void; /** * When true the user will be able to interact with content behind the modal, and move the modal around. */ isDraggable?: boolean; /** * Whether to prevent closing the overlay when the user interacts outside of it. */ isNotDismissable?: boolean; size?: 'sm' | 'md' | 'lg' | 'full' | 'expand' | 'grow'; zIndex?: IPositionProps['zIndex']; } & ModalConditionalProps; export declare type ModalConditionalProps = { title?: React.ReactElement | string; } | { renderHeader: (props: { containerProps: ModalBoxProps['moveProps']; titleProps: ModalBoxProps['titleProps']; onClose?: ModalBoxProps['onClose']; }) => React.ReactElement; }; export declare const useModalState: () => { isOpen: boolean; open: () => void; close: () => void; }; export declare const Modal: React.FC; declare type ModalBoxProps = Pick & ModalConditionalProps & { ref: LegacyRef; containerProps: Omit, 'color'>; dialogProps: Omit, 'color'>; titleProps: Omit, 'color'>; moveProps?: Omit, 'color'>; position?: { x: number; y: number; }; isHidden?: boolean; isNotDismissable?: boolean; }; export {};