import * as Core from "@ariakit/core/menu/menu-store"; import type { BivariantCallback, PickRequired } from "@ariakit/core/utils/types"; import type { ComboboxStore } from "../combobox/combobox-store.ts"; import type { CompositeStoreFunctions, CompositeStoreOptions, CompositeStoreState } from "../composite/composite-store.ts"; import type { HovercardStoreFunctions, HovercardStoreOptions, HovercardStoreState } from "../hovercard/hovercard-store.ts"; import type { MenubarStore } from "../menubar/menubar-store.ts"; import type { Store } from "../utils/store.tsx"; export declare function useMenuStoreProps(store: T, update: () => void, props: MenuStoreProps): T & { disclosure: import("../disclosure/disclosure-store.ts").DisclosureStore | null | undefined; } & { combobox: ComboboxStore | null | undefined; parent: MenuStore | null | undefined; menubar: MenubarStore | null | undefined; }; /** * Creates a menu store to control the state of * [Menu](https://ariakit.com/components/menu) components. * @see https://ariakit.com/components/menu * @example * ```jsx * const menu = useMenuStore({ placement: "top" }); * * Edit * * Undo * Redo * * ``` */ export declare function useMenuStore(props: PickRequired, "values" | "defaultValues">): MenuStore; export declare function useMenuStore(props?: MenuStoreProps): MenuStore; export type MenuStoreValues = Core.MenuStoreValues; export interface MenuStoreState extends Core.MenuStoreState, CompositeStoreState, HovercardStoreState { } export interface MenuStoreFunctions extends Pick, Omit, "combobox" | "parent" | "menubar" | "disclosure">, CompositeStoreFunctions, HovercardStoreFunctions { } export interface MenuStoreOptions extends Omit, "disclosure">, CompositeStoreOptions, HovercardStoreOptions { /** * A callback that gets called when the * [`values`](https://ariakit.com/reference/menu-provider#values) state * changes. * * Live examples: * - [MenuItemCheckbox](https://ariakit.com/examples/menu-item-checkbox) * - [Submenu with * Combobox](https://ariakit.com/examples/menu-nested-combobox) */ setValues?: BivariantCallback<(values: MenuStoreState["values"]) => void>; /** * A reference to a [combobox * store](https://ariakit.com/reference/use-combobox-store). It's * automatically set when composing [Menu with * Combobox](https://ariakit.com/examples/menu-combobox). */ combobox?: ComboboxStore | null; /** * A reference to a parent menu store. It's automatically set when nesting * menus in the React tree. You should manually set this if menus aren't * nested in the React tree. * * Live examples: * - [Menubar](https://ariakit.com/components/menubar) * - [Submenu](https://ariakit.com/examples/menu-nested) * - [Navigation Menubar](https://ariakit.com/examples/menubar-navigation) */ parent?: MenuStore | null; /** * A reference to a [menubar * store](https://ariakit.com/reference/use-menubar-store). It's automatically * set when rendering menus inside a * [`Menubar`](https://ariakit.com/reference/menubar) in the React tree. * * Live examples: * - [Navigation Menubar](https://ariakit.com/examples/menubar-navigation) */ menubar?: MenubarStore | null; } export interface MenuStoreProps extends MenuStoreOptions, Omit, "combobox" | "parent" | "menubar" | "disclosure"> { } export interface MenuStore extends MenuStoreFunctions, Omit>, "combobox" | "parent" | "menubar" | "disclosure"> { }