import React, { ElementType, MutableRefObject, Ref } from 'react'; import { Props } from '../../types.js'; import { PropsForFeatures, HasDisplayName, RefProp } from '../../utils/render.js'; import { ComponentDescription } from '../description/description.js'; declare let DEFAULT_DIALOG_TAG: "div"; interface DialogRenderPropArg { open: boolean; } type DialogPropsWeControl = 'role' | 'aria-describedby' | 'aria-labelledby' | 'aria-modal'; declare let DialogRenderFeatures: number; export type DialogProps = Props & { open?: boolean; onClose(value: boolean): void; initialFocus?: MutableRefObject; __demoMode?: boolean; }>; declare function DialogFn(props: DialogProps, ref: Ref): JSX.Element; declare let DEFAULT_OVERLAY_TAG: "div"; interface OverlayRenderPropArg { open: boolean; } type OverlayPropsWeControl = 'aria-hidden'; export type DialogOverlayProps = Props; declare function OverlayFn(props: DialogOverlayProps, ref: Ref): React.ReactElement> | null; declare let DEFAULT_BACKDROP_TAG: "div"; interface BackdropRenderPropArg { open: boolean; } type BackdropPropsWeControl = 'aria-hidden'; export type DialogBackdropProps = Props; declare function BackdropFn(props: DialogBackdropProps, ref: Ref): JSX.Element; declare let DEFAULT_PANEL_TAG: "div"; interface PanelRenderPropArg { open: boolean; } export type DialogPanelProps = Props; declare function PanelFn(props: DialogPanelProps, ref: Ref): React.ReactElement> | null; declare let DEFAULT_TITLE_TAG: "h2"; interface TitleRenderPropArg { open: boolean; } export type DialogTitleProps = Props; declare function TitleFn(props: DialogTitleProps, ref: Ref): React.ReactElement> | null; interface ComponentDialog extends HasDisplayName { (props: DialogProps & RefProp): JSX.Element; } interface ComponentDialogBackdrop extends HasDisplayName { (props: DialogBackdropProps & RefProp): JSX.Element; } interface ComponentDialogPanel extends HasDisplayName { (props: DialogPanelProps & RefProp): JSX.Element; } interface ComponentDialogOverlay extends HasDisplayName { (props: DialogOverlayProps & RefProp): JSX.Element; } interface ComponentDialogTitle extends HasDisplayName { (props: DialogTitleProps & RefProp): JSX.Element; } interface ComponentDialogDescription extends ComponentDescription { } export declare let Dialog: ComponentDialog & { Backdrop: ComponentDialogBackdrop; Panel: ComponentDialogPanel; Overlay: ComponentDialogOverlay; Title: ComponentDialogTitle; Description: ComponentDialogDescription; }; export {};