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

import { URI } from '@sussudio/base/common/uri.mjs';
export interface ICommonMenubarService {
	updateMenubar(windowId: number, menuData: IMenubarData): Promise<void>;
}
export interface IMenubarData {
	menus: {
		[id: string]: IMenubarMenu;
	};
	keybindings: {
		[id: string]: IMenubarKeybinding;
	};
}
export interface IMenubarMenu {
	items: Array<MenubarMenuItem>;
}
export interface IMenubarKeybinding {
	label: string;
	userSettingsLabel?: string;
	isNative?: boolean;
}
export interface IMenubarMenuItemAction {
	id: string;
	label: string;
	checked?: boolean;
	enabled?: boolean;
}
export interface IMenubarMenuRecentItemAction {
	id: string;
	label: string;
	uri: URI;
	remoteAuthority?: string;
	enabled?: boolean;
}
export interface IMenubarMenuItemSubmenu {
	id: string;
	label: string;
	submenu: IMenubarMenu;
}
export interface IMenubarMenuItemSeparator {
	id: 'vscode.menubar.separator';
}
export type MenubarMenuItem =
	| IMenubarMenuItemAction
	| IMenubarMenuItemSubmenu
	| IMenubarMenuItemSeparator
	| IMenubarMenuRecentItemAction;
export declare function isMenubarMenuItemSubmenu(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemSubmenu;
export declare function isMenubarMenuItemSeparator(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemSeparator;
export declare function isMenubarMenuItemRecentAction(
	menuItem: MenubarMenuItem,
): menuItem is IMenubarMenuRecentItemAction;
export declare function isMenubarMenuItemAction(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemAction;
