/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

import { IContextMenuDelegate } from '@sussudio/base/browser/contextmenu.mjs';
import { Disposable } from '@sussudio/base/common/lifecycle.mjs';
import { IMenuService } from '../../actions/common/actions.mjs';
import { IContextKeyService } from '../../contextkey/common/contextkey.mjs';
import { IKeybindingService } from '../../keybinding/common/keybinding.mjs';
import { INotificationService } from '../../notification/common/notification.mjs';
import { ITelemetryService } from '../../telemetry/common/telemetry.mjs';
import { IThemeService } from '../../theme/common/themeService.mjs';
import { IContextMenuHandlerOptions } from './contextMenuHandler';
import { IContextMenuMenuDelegate, IContextMenuService, IContextViewService } from './contextView';
export declare class ContextMenuService extends Disposable implements IContextMenuService {
	private readonly telemetryService;
	private readonly notificationService;
	private readonly contextViewService;
	private readonly keybindingService;
	private readonly themeService;
	private readonly menuService;
	private readonly contextKeyService;
	readonly _serviceBrand: undefined;
	private _contextMenuHandler;
	private get contextMenuHandler();
	private readonly _onDidShowContextMenu;
	readonly onDidShowContextMenu: import('@sussudio/base/common/event.mjs').Event<void>;
	private readonly _onDidHideContextMenu;
	readonly onDidHideContextMenu: import('@sussudio/base/common/event.mjs').Event<void>;
	constructor(
		telemetryService: ITelemetryService,
		notificationService: INotificationService,
		contextViewService: IContextViewService,
		keybindingService: IKeybindingService,
		themeService: IThemeService,
		menuService: IMenuService,
		contextKeyService: IContextKeyService,
	);
	configure(options: IContextMenuHandlerOptions): void;
	showContextMenu(delegate: IContextMenuDelegate | IContextMenuMenuDelegate): void;
}
export declare namespace ContextMenuMenuDelegate {
	function transform(
		delegate: IContextMenuDelegate | IContextMenuMenuDelegate,
		menuService: IMenuService,
		globalContextKeyService: IContextKeyService,
	): IContextMenuDelegate;
}
