/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { IActionViewItem } from "./ui/actionbar/actionbar.mjs";
import { AnchorAlignment, AnchorAxisAlignment } from "./ui/contextview/contextview.mjs";
import { IAction, IActionRunner } from "../common/actions.mjs";
import { ResolvedKeybinding } from "../common/keybindings.mjs";
export interface IContextMenuEvent {
    readonly shiftKey?: boolean;
    readonly ctrlKey?: boolean;
    readonly altKey?: boolean;
    readonly metaKey?: boolean;
}
export interface IContextMenuDelegate {
    getAnchor(): HTMLElement | {
        x: number;
        y: number;
        width?: number;
        height?: number;
    };
    getActions(): readonly IAction[];
    getCheckedActionsRepresentation?(action: IAction): 'radio' | 'checkbox';
    getActionViewItem?(action: IAction): IActionViewItem | undefined;
    getActionsContext?(event?: IContextMenuEvent): unknown;
    getKeyBinding?(action: IAction): ResolvedKeybinding | undefined;
    getMenuClassName?(): string;
    onHide?(didCancel: boolean): void;
    actionRunner?: IActionRunner;
    autoSelectFirstItem?: boolean;
    anchorAlignment?: AnchorAlignment;
    anchorAxisAlignment?: AnchorAxisAlignment;
    domForShadowRoot?: HTMLElement;
}
export interface IContextMenuProvider {
    showContextMenu(delegate: IContextMenuDelegate): void;
}
