/**
 * Methods for creating and manipulating context menus in a native ToDesktop
 * window.
 *
 * @remarks
 * This package exposes a number of methods for creating and manipulating
 * context menus in a native ToDesktop window.
 *
 * @see {@link https://docs.todesktop.com}
 * @experimental
 * @public
 * @packageDocumentation
 */
/**
 * @public
 */
export declare type ContextMenuItemBase = {
    onClick?(): void;
    type?: "normal" | "separator" | "submenu" | "checkbox" | "radio";
};
/**
 * @public
 */
export declare type ContextMenuItemLabel = {
    label: string;
};
/**
 * @public
 */
export declare type ContextMenuItemRole = {
    role: "undo" | "redo" | "cut" | "copy" | "paste" | "pasteAndMatchStyle" | "delete" | "selectAll" | "reload" | "forceReload" | "toggleDevTools" | "resetZoom" | "zoomIn" | "zoomOut" | "togglefullscreen" | "window" | "minimize" | "close" | "help" | "about" | "services" | "hide" | "hideOthers" | "unhide" | "quit" | "startSpeaking" | "stopSpeaking" | "zoom" | "front" | "appMenu" | "fileMenu" | "editMenu" | "viewMenu" | "shareMenu" | "recentDocuments" | "toggleTabBar" | "selectNextTab" | "selectPreviousTab" | "mergeAllWindows" | "clearRecentDocuments" | "moveTabToNewWindow" | "windowMenu";
};
/**
 * @public
 */
export declare type ContextMenuItem = ContextMenuItemBase & (ContextMenuItemLabel | ContextMenuItemRole);
/**
 * Creates and presents a context menu.
 * If the user's cursor is within the bounds of the current window, the
 * context menu will be appear at the cursor position.
 *
 * @param config - A single {@link ContextMenuItem} or array of
 * {@link ContextMenuItem}s to present.
 * @public
 */
export declare function create(config: ContextMenuItem[] | ContextMenuItem): Promise<void>;
