type MenuOpenChangeReason = "escape-key" | "focus-out" | "imperative-action" | "item-press" | "outside-press" | "trigger-hover" | "trigger-press"; type MenuOpenChangeDetails = { event?: Event; open: boolean; previousOpen: boolean; reason: MenuOpenChangeReason; trigger?: Element; cancel(): void; readonly isCanceled: boolean; }; type MenuCloseCompleteDetails = { event?: Event; open: false; reason: MenuOpenChangeReason; trigger?: Element; }; type MenuValueChangeReason = "item-press"; type MenuCheckedChangeReason = "item-press"; type MenuCheckedChangeDetails = { checked: boolean; event?: Event; item: HTMLElement; previousChecked: boolean; reason: MenuCheckedChangeReason; cancel(): void; readonly isCanceled: boolean; }; type MenuValueChangeDetails = { event?: Event; item: HTMLElement; previousValue: string | null; reason: MenuValueChangeReason; value: string; cancel(): void; readonly isCanceled: boolean; }; type MenuOptions = { closeDelay?: number; defaultOpen?: boolean; disabled?: boolean; onCloseComplete?: (details: MenuCloseCompleteDetails) => void; onOpenChange?: (open: boolean, details: MenuOpenChangeDetails) => void; modal?: boolean; open?: boolean; openOnHover?: boolean; portalReference?: Element; reference?: Element; triggerEvents?: boolean; }; type MenuSetOpenOptions = { emit?: boolean; event?: Event; reason?: MenuOpenChangeReason; trigger?: Element; }; type MenuOpenOptions = { event?: Event; focusFirstItem?: boolean; focusLastItem?: boolean; reason?: MenuOpenChangeReason; trigger?: Element; }; type MenuInstance = { readonly root: HTMLElement; close(): void; destroy(): void; getOpen(): boolean; open(options?: MenuOpenOptions): void; setOpen(open: boolean, options?: MenuSetOpenOptions): void; subscribe(event: "openChange", callback: (details: MenuOpenChangeDetails) => void): () => void; subscribe(event: "closeComplete", callback: (details: MenuCloseCompleteDetails) => void): () => void; toggle(): void; updatePosition(): void; }; declare function refreshMenuPortalSurface(root: HTMLElement): void; declare function createMenu(root: HTMLElement, options?: MenuOptions): MenuInstance; export { type MenuCheckedChangeDetails as M, type MenuCheckedChangeReason as a, type MenuCloseCompleteDetails as b, type MenuInstance as c, type MenuOpenChangeDetails as d, type MenuOpenChangeReason as e, type MenuOptions as f, type MenuSetOpenOptions as g, type MenuValueChangeDetails as h, type MenuValueChangeReason as i, createMenu as j, refreshMenuPortalSurface as r };