import { BoxProps, ElementProps, Factory, MantineSize, StylesApiProps } from '../../core';
import { AffixBaseProps } from '../Affix';
import { PaperBaseProps } from '../Paper';
import { TransitionOverride } from '../Transition';
export type DialogStylesNames = 'root' | 'closeButton';
export type DialogCssVariables = {
    root: '--dialog-size';
};
export interface DialogProps extends BoxProps, AffixBaseProps, PaperBaseProps, StylesApiProps<DialogFactory>, ElementProps<'div'> {
    /** If set, the component uses `display: none` to hide the root element instead of removing the DOM node @default false */
    keepMounted?: boolean;
    /** If set, displays the close button @default true */
    withCloseButton?: boolean;
    /** Called on close button click */
    onClose?: () => void;
    /** Dialog content */
    children?: React.ReactNode;
    /** Opened state */
    opened: boolean;
    /** Props passed down to the underlying `Transition` component @default { transition: 'pop-top-right', duration: 200 } */
    transitionProps?: TransitionOverride;
    /** Controls `width` of the dialog @default 'md' */
    size?: MantineSize | (string & {}) | number;
}
export type DialogFactory = Factory<{
    props: DialogProps;
    ref: HTMLDivElement;
    stylesNames: DialogStylesNames;
    vars: DialogCssVariables;
}>;
export declare const Dialog: import("../..").MantineComponent<{
    props: DialogProps;
    ref: HTMLDivElement;
    stylesNames: DialogStylesNames;
    vars: DialogCssVariables;
}>;
export declare namespace Dialog {
    type Props = DialogProps;
    type StylesNames = DialogStylesNames;
    type CssVariables = DialogCssVariables;
    type Factory = DialogFactory;
}
