import { type PartialWithUndefined } from '@augment-vir/common';
import { NavController } from 'device-navigation';
import { type MenuItem } from './pop-up-menu-item.js';
/**
 * Test ids for {@link ViraMenu}.
 *
 * @category Internal
 */
export declare const viraMenuTestIds: {
    item: string;
};
/**
 * A wrapper for menu items. This can be used for dropdown items or menu bar dropdowns. To detect
 * when items are selected or unselected, pass in a `NavController` instance and hook into its
 * events.
 *
 * @category PopUp
 * @category Elements
 */
export declare const ViraMenu: import("element-vir").DeclarativeElementDefinition<"vira-menu", Readonly<{
    /**
     * The parent nav controller for this menu. If none is provided, an internal nav
     * controller is created (which means it can't be hooked into by external elements).
     *
     * It is recommended to not leave this `undefined`.
     */
    navController: NavController | undefined;
    /** All menu items to show to the user. */
    items: ReadonlyArray<Readonly<MenuItem>>;
} & PartialWithUndefined<{
    /** The ids of the currently selected menu items. */
    selected: ReadonlyArray<PropertyKey>;
    isMultiSelect: boolean;
    /** Hide menu item check mark icons. */
    hideCheckIcons: boolean;
}>>, {
    internalNavController: NavController;
}, {}, "vira-menu-multiselect", "vira-menu-", readonly []>;
