import { ServiceIdentifier } from '../../instantiation/common/instantiation.js';
import { IContextViewProvider, AnchorAlignment } from '../../../base/browser/ui/contextview/contextview.js';
import { IDisposable } from '../../../base/common/lifecycle.js';
import { IContextMenuMenuDelegate, IContextViewDelegate } from './contextView.js';
import { IContextMenuDelegate } from '../../../base/browser/contextmenu.js';
import { Event } from '../../../base/common/event.js';

declare const IContextViewService: ServiceIdentifier<IContextViewService>;
interface IContextViewService extends IContextViewProvider {
    readonly _serviceBrand: undefined;
    showContextView(delegate: IContextViewDelegate, container?: HTMLElement, shadowRoot?: boolean): IDisposable;
    hideContextView(data?: any): void;
    getContextViewElement(): HTMLElement;
    layout(): void;
    anchorAlignment?: AnchorAlignment;
}
declare const IContextMenuService: ServiceIdentifier<IContextMenuService>;
interface IContextMenuService {
    readonly _serviceBrand: undefined;
    readonly onDidShowContextMenu: Event<void>;
    readonly onDidHideContextMenu: Event<void>;
    showContextMenu(delegate: IContextMenuDelegate | IContextMenuMenuDelegate): void;
}

export { IContextMenuService, IContextViewService };
