import { JSONObject } from '../algorithm/json';
import { ISequence } from '../algorithm/sequence';
import { Message } from '../core/messaging';
import { ISignal } from '../core/signaling';
import { CommandRegistry } from './commandregistry';
import { Keymap } from './keymap';
import { Widget } from './widget';
/**
* A widget which displays menu items as a canonical menu.
*/
export declare class Menu extends Widget {
/**
* Construct a new menu.
*
* @param options - The options for initializing the menu.
*/
constructor(options: Menu.IOptions);
/**
* Dispose of the resources held by the menu.
*/
dispose(): void;
/**
* A signal emitted just before the menu is closed.
*
* #### Notes
* This signal is emitted when the menu receives a `'close-request'`
* message, just before it removes itself from the DOM.
*
* This signal is not emitted if the menu is already detached from
* the DOM when it receives the `'close-request'` message.
*/
aboutToClose: ISignal