/** * Module to interact with the menu-specific part of the SDK. * This object is used to show View Configuration, Action Menu and Navigation Bar Menu. * @module */ /** * @hidden * Represents information about item in View Configuration. * * @internal * Limited to Microsoft-internal use */ export interface ViewConfiguration { /** * @hidden * Unique identifier of view. * * @internal * Limited to Microsoft-internal use */ id: string; /** * @hidden * Display title of the view. * * @internal * Limited to Microsoft-internal use */ title: string; /** * @hidden * Additional information for accessibility. * * @internal * Limited to Microsoft-internal use */ contentDescription?: string; } /** * Defines how a menu item should appear in the NavBar. */ export declare enum DisplayMode { /** * Only place this item in the NavBar if there's room for it. * If there's no room, item is shown in the overflow menu. */ ifRoom = 0, /** * Never place this item in the NavBar. * The item would always be shown in NavBar's overflow menu. */ overflowOnly = 1 } /** * @hidden * Represents information about menu item for Action Menu and Navigation Bar Menu. */ export declare class MenuItem { /** * @hidden * Unique identifier for the menu item. */ id: string; /** * @hidden * Display title of the menu item. */ title: string; /** * @hidden * Display icon of the menu item. The icon value must be a string having SVG icon content. */ icon: string; /** * @hidden * Selected state display icon of the menu item. The icon value must be a string having SVG icon content. */ iconSelected?: string; /** * @hidden * Additional information for accessibility. */ contentDescription?: string; /** * @hidden * State of the menu item */ enabled: boolean; /** * @hidden * Interface to show list of items on selection of menu item. */ viewData?: ViewData; /** * @hidden * Whether the menu item is selected or not */ selected: boolean; /** * The Display Mode of the menu item. * Default Behaviour would be DisplayMode.ifRoom if null. * Refer {@link DisplayMode} */ displayMode?: DisplayMode; } /** * @hidden * Represents information about view to show on Navigation Bar Menu item selection */ export interface ViewData { /** * @hidden * Display header title of the item list. */ listTitle?: string; /** * @hidden * Type of the menu item. */ listType: MenuListType; /** * @hidden * Array of MenuItem. Icon value will be required for all items in the list. */ listItems: MenuItem[]; } /** * @hidden * Represents information about type of list to display in Navigation Bar Menu. */ export declare enum MenuListType { dropDown = "dropDown", popOver = "popOver" } /** * @hidden * Register navBarMenuItemPress, actionMenuItemPress, setModuleView handlers. * * @internal * Limited to Microsoft-internal use. */ export declare function initialize(): void; /** * @hidden * Registers list of view configurations and it's handler. * Handler is responsible for listening selection of View Configuration. * * @param viewConfig - List of view configurations. Minimum 1 value is required. * @param handler - The handler to invoke when the user selects view configuration. */ export declare function setUpViews(viewConfig: ViewConfiguration[], handler: (id: string) => boolean): void; /** * @hidden * Used to set menu items on the Navigation Bar. If icon is available, icon will be shown, otherwise title will be shown. * * @param items List of MenuItems for Navigation Bar Menu. * @param handler The handler to invoke when the user selects menu item. */ export declare function setNavBarMenu(items: MenuItem[], handler: (id: string) => boolean): void; /** Parameters used to create an action menu within an app */ export interface ActionMenuParameters { /** * @hidden * Display title for Action Menu */ title: string; /** * @hidden * List of MenuItems for Action Menu */ items: MenuItem[]; } /** * @hidden * Used to show Action Menu. * * @param params - Parameters for Menu Parameters * @param handler - The handler to invoke when the user selects menu item. */ export declare function showActionMenu(params: ActionMenuParameters, handler: (id: string) => boolean): void; /** * Checks if the menus capability is supported by the host * @returns boolean to represent whether the menus capability is supported * * @throws Error if {@linkcode app.initialize} has not successfully completed */ export declare function isSupported(): boolean;