import { MenuSectionContent as SerializableMenu } from '@stack-spot/portal-extension-commons'; import { MenuSectionContent } from '@stack-spot/portal-layout'; type Listener = (value: MenuSectionContent | undefined) => void; declare class ExtensionMenu { private current; private listeners; /** * Slug and url of the extension currently controlling the menu. */ controlledBy?: { slug: string; url: string; }; private static deserializeMenuItem; private static deserializeMenu; private static fixRelativeUrls; /** * Changes the current menu. * @param menu the new menu. */ set(menu: SerializableMenu | undefined): void; /** * Observes changes in the menu. * @param listener a function to call whenever the menu changes. * @returns a function that, when called, removes the listener. */ onChange(listener: Listener): () => void; get(): MenuSectionContent | undefined; } export declare const extensionMenu: ExtensionMenu; export declare function useExtensionMenu(): MenuSectionContent | undefined; export {}; //# sourceMappingURL=extension-menu.d.ts.map