/********************************************************************************
 * Copyright (c) 2019-2025 EclipseSource and others.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the Eclipse
 * Public License v. 2.0 are satisfied: GNU General Public License, version 2
 * with the GNU Classpath Exception which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 ********************************************************************************/
import { Anchor, ClientMenuItem, IActionDispatcher, IContextMenuService } from '@eclipse-glsp/client';
import { CommandRegistry, MenuModelRegistry, MenuPath } from '@theia/core';
import { ApplicationShell, ContextMenuRenderer } from '@theia/core/lib/browser';
import { GLSPDiagramWidget } from './diagram/glsp-diagram-widget';
export declare namespace TheiaGLSPContextMenu {
    const CONTEXT_MENU: MenuPath;
}
export declare class TheiaContextMenuService implements IContextMenuService {
    protected timeout?: number;
    protected disposables: DisposableItem[];
    protected readonly contextMenuRenderer: ContextMenuRenderer;
    protected readonly menuProvider: MenuModelRegistry;
    protected readonly commandRegistry: CommandRegistry;
    protected readonly shell: ApplicationShell;
    protected actionDispatcher?: IActionDispatcher;
    connect(actionDispatcher: IActionDispatcher): void;
    get diagramWidget(): GLSPDiagramWidget | undefined;
    show(items: ClientMenuItem[], anchor: Anchor, onHide?: () => void): void;
    protected register(menuPath: string[], items: ClientMenuItem[]): DisposableItem[];
    protected registerSubmenu(menuPath: string[], item: ClientMenuItem): DisposableItem;
    protected registerCommand(menuPath: string[], item: ClientMenuItem): DisposableItem;
    protected registerMenuAction(menuPath: string[], item: ClientMenuItem): DisposableItem;
    protected cleanUpNow(): void;
    protected scheduleCleanup(): void;
    protected cleanUp(): void;
    protected restoreFocus(): void;
}
interface DisposableItem {
    dispose(menuProvider: MenuModelRegistry, commandRegistry: CommandRegistry): void;
}
export {};
//# sourceMappingURL=theia-glsp-context-menu-service.d.ts.map