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 {};