import { DNode } from '@dojo/framework/core/interfaces';
export interface DialogPropertiesBase {
    /** Custom aria attributes */
    aria?: {
        [key: string]: string | null;
    };
    /** Determines whether the dialog can be closed */
    closeable?: boolean;
    /** Hidden text used by screen readers to display for the close button */
    closeText?: string;
    /** Determines whether the dialog is open or closed */
    open: boolean;
    /** Determines whether a semi-transparent background shows behind the dialog */
    underlay?: boolean;
    /** Called when the dialog opens */
    onOpen?(): void;
    /** Called when the dialog is closed */
    onRequestClose(): void;
}
export interface DialogPropertiesDialogRole extends DialogPropertiesBase {
    /** Role of this dialog for accessibility, either 'alertdialog' or 'dialog' */
    role?: 'dialog';
    /** Determines whether the dialog can be closed by clicking outside its content. Only applicable when using "dialog" role */
    modal?: boolean;
}
export interface DialogPropertiesAlertDialogRole extends DialogPropertiesBase {
    role: 'alertdialog';
}
export declare type DialogProperties = DialogPropertiesDialogRole | DialogPropertiesAlertDialogRole;
export interface DialogChild {
    title?: DNode;
    content?: DNode;
    actions?: DNode;
}
export interface DialogState {
    wasOpen: boolean;
    callFocus: boolean;
    titleId: string;
    contentId: string;
}
export declare const Dialog: import("@dojo/framework/core/interfaces").WNodeFactory<{
    properties: (DialogPropertiesDialogRole & import("@dojo/framework/core/interfaces").WidgetProperties & {
        variant?: "default" | "inherit" | undefined;
    } & import("@dojo/framework/core/middleware/theme").ThemeProperties & import("@dojo/framework/core/interfaces").I18nProperties) | (DialogPropertiesAlertDialogRole & import("@dojo/framework/core/interfaces").WidgetProperties & {
        variant?: "default" | "inherit" | undefined;
    } & import("@dojo/framework/core/middleware/theme").ThemeProperties & import("@dojo/framework/core/interfaces").I18nProperties);
    children: DialogChild;
}>;
export default Dialog;
