import React, { HTMLAttributes, ReactNode } from "react"; import { BoxProps } from "../Box"; import { PortalProps, PortalRootElementType } from "../Portal"; import { DescriptionProps } from "../Description"; import { CloseButtonProps } from "../CloseButton"; import { StackProps } from "../Stack"; import { HeadingProps } from "../Heading"; export declare enum MODAL_SIZE { DEFAULT = "default", LARGE = "large", FULL = "full" } export interface ModalProps extends BoxProps { title?: string; secondaryTitle?: string; description?: string; isOpen?: boolean; onClose?: () => void; autoFocus?: boolean; returnFocus?: boolean; lockScroll?: boolean; disableOutsideClick?: boolean; disableEscClose?: boolean; hideCloseButton?: boolean; size?: MODAL_SIZE; center?: boolean; noHeader?: boolean; portalRoot?: PortalRootElementType; overlayClassName?: string; hideScreen?: boolean; } export interface ModalBodyProps extends BoxProps { padded?: boolean; } export interface ModalFooterMultiStepProps extends BoxProps { steps: number; currentStep: number; leftButtonLabel?: string; rightButtonLabel?: string; } export declare const ModalHeader: (props: BoxProps) => React.JSX.Element; export declare const ModalTitle: (props: HeadingProps) => React.JSX.Element; export declare const ModalSecondaryTitle: ({ className, ...rest }: HeadingProps) => React.JSX.Element; export declare const ModalDescription: ({ className, ...rest }: DescriptionProps) => React.JSX.Element; export declare const ModalBody: (props: ModalBodyProps) => React.JSX.Element; export declare const ModalTabs: (props: StackProps) => React.JSX.Element; export declare const ModalFooter: (props: BoxProps) => React.JSX.Element; export declare const ModalFooterMultiStep: ({ steps, currentStep, leftButtonLabel, rightButtonLabel, children, className, ...rest }: ModalFooterMultiStepProps) => React.JSX.Element; export declare const ModalCloseButton: ({ className, ...rest }: CloseButtonProps) => React.JSX.Element; interface ModalCloseProps { children: ReactNode; asChild?: boolean; } export declare const ModalClose: React.ForwardRefExoticComponent & ModalCloseProps & React.RefAttributes>; export interface ModalRootProps { children: ReactNode; isOpen?: boolean; onClose?: () => void; disableOutsideClick?: boolean; disableEscClose?: boolean; } export declare const ModalRoot: ({ children, isOpen, onClose, disableOutsideClick, disableEscClose, }: ModalRootProps) => React.JSX.Element; export type ModalPortalProps = PortalProps; export declare const ModalPortal: ({ children, root, id }: ModalPortalProps) => React.JSX.Element; export interface ModalOverlayProps { children: ReactNode; className?: string; lockScroll?: boolean; autoFocus?: boolean; returnFocus?: boolean; } export declare const ModalOverlay: ({ children, className, lockScroll, autoFocus, returnFocus, }: ModalOverlayProps) => React.JSX.Element; export interface ModalContainerProps extends BoxProps { children: ReactNode; className?: string; } export declare const ModalContainer: ({ children, className, ...rest }: ModalContainerProps) => React.JSX.Element; export interface ModalContentProps extends BoxProps { children: ReactNode; } export declare const ModalContent: React.ForwardRefExoticComponent & React.RefAttributes>; export declare const ModalScreen: ({ className, style, ...rest }: HTMLAttributes) => React.JSX.Element; export declare const Modal: { (props: ModalProps): React.JSX.Element; Root: ({ children, isOpen, onClose, disableOutsideClick, disableEscClose, }: ModalRootProps) => React.JSX.Element; Portal: ({ children, root, id }: ModalPortalProps) => React.JSX.Element; Overlay: ({ children, className, lockScroll, autoFocus, returnFocus, }: ModalOverlayProps) => React.JSX.Element; Container: ({ children, className, ...rest }: ModalContainerProps) => React.JSX.Element; Content: React.ForwardRefExoticComponent & React.RefAttributes>; Screen: ({ className, style, ...rest }: HTMLAttributes) => React.JSX.Element; Tabs: (props: StackProps) => React.JSX.Element; Header: (props: BoxProps) => React.JSX.Element; Title: (props: HeadingProps) => React.JSX.Element; SecondaryTitle: ({ className, ...rest }: HeadingProps) => React.JSX.Element; Description: ({ className, ...rest }: DescriptionProps) => React.JSX.Element; Body: (props: ModalBodyProps) => React.JSX.Element; Footer: (props: BoxProps) => React.JSX.Element; FooterMultiStep: ({ steps, currentStep, leftButtonLabel, rightButtonLabel, children, className, ...rest }: ModalFooterMultiStepProps) => React.JSX.Element; CloseButton: ({ className, ...rest }: CloseButtonProps) => React.JSX.Element; Close: React.ForwardRefExoticComponent & ModalCloseProps & React.RefAttributes>; }; export {};