import { ReactElement } from 'react';
import { FocusableElement } from '../focusLock/focusLock.types';
import { AnimationProp, SystemProps } from '../system';
import { ThemingProps } from '../theme';
import { MouseEvent } from '../utils';
export type ModalBackdropProps = SystemProps;
export type ModalContentProps = SystemProps;
export type ModalContext = Pick<ModalProps, 'isOpen' | 'onBackdropClick' | 'onClose' | 'size' | 'variant'>;
export type ModalProps = SystemProps & ThemingProps<'Modal'> & {
    /** Handle zoom/pinch gestures on iOS devices when scroll locking is enabled. */
    allowPinchZoom?: boolean;
    /** The animation to use when the Modal is open. @default fadeDown */
    animation?: AnimationProp;
    /** A single child content element. */
    children: ReactElement;
    /** Props passed to internal ModalContent component. */
    contentProps?: ModalContentProps;
    /** It won't auto-focus the first focuable element within the 'children' once FocusLock mounts. */
    disableAutoFocus?: boolean;
    /** Clicking Backdrop element will not trigger 'onClose'. */
    disableBackdropClose?: boolean;
    /** Pressing 'Escape' will not trigger 'onClose'. */
    disableEscClose?: boolean;
    /** The children will be under the DOM hierarchy of the parent component. */
    disablePortal?: boolean;
    /** Focus won't be returned to the element that triggered the FocusLock once it unmounts. */
    disableReturnFocus?: boolean;
    /** Allows scrolling to happen on the content beneath the Modal. */
    disableScrollLock?: boolean;
    /** Disables FocusLock mechanism and allows focusing elements outside the Modal. */
    disableTrapFocus?: boolean;
    /** 'ref' of the element to return focus to when FocusLock unmounts. */
    finalFocusRef?: React.RefObject<FocusableElement>;
    /** Hides the dark backdrop element that is normally displayed beneath modal content. */
    hideBackdrop?: boolean;
    /** 'ref' of the element to receive focus initially when FocusLock mounts. */
    initialFocusRef?: React.RefObject<FocusableElement>;
    /** Displays the modal with its content on top of a backdrop. */
    isOpen?: boolean;
    /** Callback triggered when the backdrop element is clicked. Defaults to onClose. */
    onBackdropClick?: (e: MouseEvent) => void;
    /** Callback triggered to close the modal. */
    onClose?: () => void;
    /** Callback triggered when pressing 'Escape' key. Defaults to onClose. */
    onEsc?: () => void;
    /** Test this prop on Windows scrollbars */
    preserveScrollBar?: boolean;
};
//# sourceMappingURL=modal.types.d.ts.map