import * as React from 'react'; import { ReactStore } from '@base-ui-components/utils/store'; import { MenuParent, MenuRoot } from "../root/MenuRoot.js"; import { FloatingTreeStore } from "../../floating-ui-react/components/FloatingTreeStore.js"; import { HTMLProps } from "../../utils/types.js"; import { PopupStoreContext, PopupStoreState } from "../../utils/popups/index.js"; export type State = PopupStoreState & { disabled: boolean; modal: boolean; allowMouseEnter: boolean; parent: MenuParent; rootId: string | undefined; activeIndex: number | null; hoverEnabled: boolean; stickIfOpen: boolean; instantType: 'dismiss' | 'click' | 'group' | undefined; openChangeReason: MenuRoot.ChangeEventReason | null; floatingTreeRoot: FloatingTreeStore; floatingNodeId: string | undefined; floatingParentNodeId: string | null; itemProps: HTMLProps; closeDelay: number; keyboardEventRelay: ((event: React.KeyboardEvent) => void) | undefined; }; type Context = PopupStoreContext & { readonly positionerRef: React.RefObject; readonly popupRef: React.RefObject; readonly typingRef: React.RefObject; readonly itemDomElements: React.RefObject<(HTMLElement | null)[]>; readonly itemLabels: React.RefObject<(string | null)[]>; allowMouseUpTriggerRef: React.RefObject; readonly triggerFocusTargetRef: React.RefObject; readonly beforeContentFocusGuardRef: React.RefObject; }; declare const selectors: { disabled: (state: State) => boolean; modal: (state: State) => boolean; allowMouseEnter: (state: State) => boolean; stickIfOpen: (state: State) => boolean; parent: (state: State) => MenuParent; rootId: (state: State) => string | undefined; activeIndex: (state: State) => number | null; isActive: (state: State, itemIndex: number) => boolean; hoverEnabled: (state: State) => boolean; instantType: (state: State) => "group" | "click" | "dismiss" | undefined; lastOpenChangeReason: (state: State) => import("../index.js").MenuRootChangeEventReason | null; floatingTreeRoot: (state: State) => FloatingTreeStore; floatingNodeId: (state: State) => string | undefined; floatingParentNodeId: (state: State) => string | null; itemProps: (state: State) => HTMLProps; closeDelay: (state: State) => number; keyboardEventRelay: (state: State) => React.KeyboardEventHandler | undefined; open: (state: PopupStoreState) => boolean; mounted: (state: PopupStoreState) => boolean; transitionStatus: (state: PopupStoreState) => import("../../utils/useTransitionStatus.js").TransitionStatus; floatingRootContext: (state: PopupStoreState) => import("../../floating-ui-react/components/FloatingRootStore.js").FloatingRootStore; preventUnmountingOnClose: (state: PopupStoreState) => boolean; payload: (state: PopupStoreState) => unknown; activeTriggerId: (state: PopupStoreState) => string | null; activeTriggerElement: (state: PopupStoreState) => Element | null; isTriggerActive: (state: PopupStoreState, triggerId: string | undefined) => boolean; isOpenedByTrigger: (state: PopupStoreState, triggerId: string | undefined) => boolean; isMountedByTrigger: (state: PopupStoreState, triggerId: string | undefined) => boolean; triggerProps: (state: PopupStoreState, isActive: boolean) => HTMLProps; popupProps: (state: PopupStoreState) => HTMLProps; popupElement: (state: PopupStoreState) => HTMLElement | null; positionerElement: (state: PopupStoreState) => HTMLElement | null; }; export declare class MenuStore extends ReactStore>, Context, typeof selectors> { constructor(initialState?: Partial>); setOpen(open: boolean, eventDetails: Omit): void; static useStore(externalStore: MenuStore | undefined, initialState: Partial>): MenuStore; private unsubscribeParentListener; } export {};