import React, { type ReactNode } from 'react';
import { type BoxProps } from '../Box/Box';
export { CHECKOUT_MODAL_BOTTOM_BAR_ID, CHECKOUT_MODAL_TITLE_COUNTDOWN_ID, useBottomSectionRef, useTitleCountdownRef, } from './hooks';
interface DialogProps {
    open: boolean;
    onClose: () => void;
    onAnimationComplete?: () => void;
    titleId: string;
    onMountAutoFocus?: (event: Event) => void;
    children: ReactNode;
    /** To hide the dialog without removing the object from the DOM **/
    isHidden?: boolean;
    /** Whether clicking outside the dialog or pressing escape key would close the modal */
    isSmartCloseable?: boolean;
    /** Whether side padding around the content of the modal should be applied */
    withoutSidePadding?: boolean;
    /** Whether bottom padding around the content of the modal should be applied */
    withoutBottomPadding?: boolean;
    /** Whether the transition animation should be used on open/close */
    withTransition?: boolean;
}
/**
 * Dialog components (title, content, bottom bar) must be rendered as direct children of Dialog for correct scrolling behavior
 */
export declare function Dialog({ children, onClose, onAnimationComplete, open, titleId, isHidden, isSmartCloseable, withoutSidePadding, withoutBottomPadding, withTransition, }: DialogProps): React.ReactPortal | null;
export declare namespace Dialog {
    var Title: ({ title, titleMeta, hasCloseButton: hasCloseButtonProp, isCloseDisabled, onClose, hasBackButton: hasBackButtonProp, helpButtonUrl, isBackDisabled, onBack, dydxHideBack, className, }: DialogTitleProps) => React.JSX.Element;
    var Content: ({ children, fullHeight, paddingLeft, paddingBottom, paddingTop, className, withTopDivider, withBottomDivider, id, withoutInternalPadding, ...boxProps }: DialogContentProps) => React.JSX.Element;
    var BottomSection: ({ paddingX, children, ...boxProps }: BoxProps) => React.JSX.Element;
    var BottomBar: ({ topSection, actionButtonProps, bottomSection, onClose, }: import("../FunBottomBar/FunBottomBar").FunBottomBarProps) => React.JSX.Element;
}
interface DialogContentProps extends BoxProps {
    children: ReactNode;
    /** Whether the content should fill all available space */
    fullHeight?: boolean;
    withTopDivider?: 'always' | 'scroll' | 'never';
    withBottomDivider?: 'always' | 'scroll' | 'never';
    id?: string;
    /** Whether internal padding around the content of the modal should be applied */
    withoutInternalPadding?: boolean;
}
export interface DialogTitleProps {
    title?: string;
    titleMeta?: string;
    /** Can hide the close button, eg. when using a countdown element in its place */
    hasCloseButton?: boolean;
    isCloseDisabled?: boolean;
    onClose?: () => void;
    hasBackButton?: boolean;
    helpButtonUrl?: string;
    isBackDisabled?: boolean;
    onBack?: () => void;
    dydxHideBack?: boolean;
    className?: string;
}
