type DialogOpenChangeReason = "trigger-press" | "outside-press" | "escape-key" | "close-press" | "imperative-action" | "none"; type DialogOpenChangeDetails = { open: boolean; previousOpen: boolean; reason: DialogOpenChangeReason; event?: Event; trigger?: Element; cancel(): void; readonly isCanceled: boolean; }; type DialogCloseCompleteDetails = { open: false; reason: DialogOpenChangeReason; event?: Event; trigger?: Element; }; type DialogRole = "alertdialog" | "dialog"; type DialogOptions = { defaultOpen?: boolean; open?: boolean; closeOnEscape?: boolean; closeOnOutsideInteract?: boolean; modal?: boolean; role?: DialogRole; onOpenChange?: (open: boolean, details: DialogOpenChangeDetails) => void; onCloseComplete?: (details: DialogCloseCompleteDetails) => void; }; type DialogSetOpenOptions = { emit?: boolean; reason?: DialogOpenChangeReason; event?: Event; trigger?: Element; }; type DialogInstance = { readonly root: HTMLElement; open(): void; close(): void; toggle(): void; setOpen(open: boolean, options?: DialogSetOpenOptions): void; getOpen(): boolean; subscribe(event: "openChange", callback: (details: DialogOpenChangeDetails) => void): () => void; subscribe(event: "closeComplete", callback: (details: DialogCloseCompleteDetails) => void): () => void; destroy(): void; }; declare function createDialog(root: HTMLElement, options?: DialogOptions): DialogInstance; declare function refreshDialogPortalSurface(root: HTMLElement): void; export { type DialogCloseCompleteDetails, type DialogInstance, type DialogOpenChangeDetails, type DialogOpenChangeReason, type DialogOptions, type DialogSetOpenOptions, createDialog, refreshDialogPortalSurface };