import * as React from 'react';
import { HTMLAttributes, ReactNode, PropsWithChildren } from 'react';

type DialogPosition = 'top' | 'center' | 'none';
type DialogProps = HTMLAttributes<HTMLDivElement> & {
    /** Whether the dialog is currently open */
    isOpen: boolean;
    /** Title of the Dialog used for accessibility */
    titleElement: ReactNode;
    /** Description of the Dialog used for accessibility */
    description: ReactNode;
    /** Callback when the dialog tries to close */
    onClose?: () => void;
    /** Styling for the background */
    backgroundClassName?: string;
    /** If true shows a close button and sends onClose on background clicks */
    isModal?: boolean;
    position?: DialogPosition;
    isAnimated?: boolean;
    containerClassName?: string;
};
/**
 * A generic dialog window which is managed by its parent
 */
declare const Dialog: ({ children, isOpen, titleElement, description, isModal, onClose, backgroundClassName, position, isAnimated, containerClassName, ...props }: PropsWithChildren<DialogProps>) => React.ReactPortal;

export { Dialog, type DialogPosition, type DialogProps };
