type PopoverOpenChangeReason = "close-press" | "escape-key" | "imperative-action" | "outside-press" | "trigger-hover" | "trigger-press"; type PopoverOpenChangeDetails = { event?: Event; open: boolean; previousOpen: boolean; reason: PopoverOpenChangeReason; trigger?: Element; cancel(): void; readonly isCanceled: boolean; }; type PopoverCloseCompleteDetails = { event?: Event; open: false; reason: PopoverOpenChangeReason; trigger?: Element; }; type PopoverOptions = { closeOnEscape?: boolean; closeOnOutsideInteract?: boolean; defaultOpen?: boolean; modal?: boolean; onCloseComplete?: (details: PopoverCloseCompleteDetails) => void; onOpenChange?: (open: boolean, details: PopoverOpenChangeDetails) => void; open?: boolean; openOnHover?: boolean; }; type PopoverSetOpenOptions = { emit?: boolean; event?: Event; reason?: PopoverOpenChangeReason; trigger?: Element; }; type PopoverInstance = { readonly root: HTMLElement; close(): void; destroy(): void; getOpen(): boolean; open(): void; setOpen(open: boolean, options?: PopoverSetOpenOptions): void; subscribe(event: "openChange", callback: (details: PopoverOpenChangeDetails) => void): () => void; subscribe(event: "closeComplete", callback: (details: PopoverCloseCompleteDetails) => void): () => void; toggle(): void; }; declare function refreshPopoverPortalSurface(root: HTMLElement): void; declare function createPopover(root: HTMLElement, options?: PopoverOptions): PopoverInstance; export { type PopoverCloseCompleteDetails as P, type PopoverInstance as a, type PopoverOpenChangeDetails as b, type PopoverOpenChangeReason as c, type PopoverOptions as d, type PopoverSetOpenOptions as e, createPopover as f, refreshPopoverPortalSurface as r };