import { default as React, PropsWithChildren } from 'react';
export type DialogSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'fullwidth' | 'fullheight' | 'fullheight-lg' | 'fullheight-xl' | 'fullscreen';
export type BaseDialogProps = {
    /**
     * Opens the dialog when set to `true`.
     *
     * @default false
     */
    show: boolean;
    /**
     * The dialog title (can also be a FormattedMessage component).
     */
    title?: React.ReactNode;
    /**
     * The dialog header subtitle content.
     */
    subtitle?: React.ReactNode;
    /**
     * Shows a close button when set to `true`.
     *
     * @default true
     */
    showCloseButton?: boolean;
    /**
     * A callback function invoked when the dialog closes.
     */
    onClose?: () => void;
    /**
     * Defined how large the dialog will be rendered.
     *
     * By default, the dialog has a medium size, and thus it can be omitted.
     *
     * Possible values are:
     *
     * - `'xs'`
     * - `'sm'`
     * - `'lg'`
     * - `'xl'`
     * - `'fullwidth'`
     * - `'fullheight'`
     * - `'fullheight-lg'`
     * - `'fullheight-xl'`
     * - `'fullscreen'`
     *
     * @default 'md'
     */
    bsSize?: DialogSize;
    /**
     * Enables or disabled closing the dialog via esc key.
     *
     * @default false
     */
    disableEsc?: boolean;
    /**
     * Enables the modal body to overflow and use inline scrolling if needed.
     *
     * @default false
     */
    useOverflow?: boolean;
    /**
     * Show Header and Footer Borders for the "xs" dialog
     *
     * @default false
     */
    showXsDialogBorders?: boolean;
    /**
     * Additional classes for the modal element.
     */
    className?: string;
};
export type DialogProps = BaseDialogProps & {
    /**
     * The dialog body content.
     */
    body?: React.ReactNode;
    /**
     * The dialog body content.
     */
    footer?: React.ReactNode;
    /**
     * Additional classes for the modal-body element.
     */
    bodyClassName?: string;
    /**
     * Additional classes for the modal-footer element.
     */
    footerClassName?: string;
    /**
     * Allows to add additional buttons to the dialog header.
     */
    headerButtons?: React.ReactNode;
    /**
     * A callback fired when esc key is pressed and the dialog is about to close.
     */
    onEsc?: VoidFunction;
    /**
     * A callback function to be executed before closing the dialog.
     *
     * If the function returns `false`, the dialog will not be closed
     *
     * @default () => true
     */
    onCloseValidation?: () => boolean;
};
declare const Dialog: {
    (props: PropsWithChildren<DialogProps>): React.ReactPortal;
    Title: (props: import('./DialogHeader').DialogHeaderProps) => import("react/jsx-runtime").JSX.Element;
    Body: ({ className, children, ...remainingProps }: PropsWithChildren<import('./DialogBody').DialogBodyProps>) => import("react/jsx-runtime").JSX.Element;
    Footer: (props: PropsWithChildren<import('./DialogFooter').DialogFooterProps>) => import("react/jsx-runtime").JSX.Element;
    SIZE_XS: "xs";
    SIZE_SM: "sm";
    SIZE_MD: "md";
    SIZE_LG: "lg";
    SIZE_XL: "xl";
    SIZE_FULL: "full";
    SIZE_FULL_WIDTH: "fullwidth";
    SIZE_FULL_HEIGHT: "fullheight";
    SIZE_FULL_HEIGHT_LG: "fullheight-lg";
    SIZE_FULL_HEIGHT_XL: "fullheight-xl";
    SIZE_FULL_SCREEN: "fullscreen";
};
export default Dialog;
