import { CommandRegistry, CommandService, IContextKeyService, ILogger } from '@opensumi/ide-core-browser';
import { ToolbarRegistry } from '@opensumi/ide-core-browser/lib/layout';
import { IMenuItem, IMenuRegistry, ISubmenuItem, MenuId } from '@opensumi/ide-core-browser/lib/menu/next';
import { LifeCyclePhase } from '@opensumi/ide-core-common';
import { IEditorActionRegistry } from '@opensumi/ide-editor/lib/browser';
import { ThemeType } from '@opensumi/ide-theme';
import { IIconService } from '@opensumi/ide-theme/lib/common/theme.service';
import { VSCodeContributePoint } from '../../../common';
import { AbstractExtInstanceManagementService } from '../../types';
export interface MenuActionFormat extends IMenuItem {
    command: string;
    when?: string;
    alt?: string;
}
export type SubmenuActionFormat = ISubmenuItem;
export interface MenusSchema {
    [MenuPosition: string]: Array<MenuActionFormat | SubmenuActionFormat>;
}
export type SubmenusSchema = Array<{
    id: string;
    label: string;
    icon?: {
        [index in ThemeType]: string;
    } | string;
}>;
export declare function parseMenuId(value: string): MenuId | string;
export declare function parseMenuGroup(groupStr?: string): (string | number | undefined)[];
export declare function isValidMenuItem(item: MenuActionFormat, collector: Console): boolean;
export declare class SubmenusContributionPoint extends VSCodeContributePoint<SubmenusSchema> {
    static schema: {};
    contribute(): void;
}
export declare class MenusContributionPoint extends VSCodeContributePoint<MenusSchema> {
    phase: LifeCyclePhase;
    commandRegistry: CommandRegistry;
    commandService: CommandService;
    logger: ILogger;
    menuRegistry: IMenuRegistry;
    toolBarRegistry: ToolbarRegistry;
    editorActionRegistry: IEditorActionRegistry;
    contextKeyService: IContextKeyService;
    iconService: IIconService;
    protected readonly extensionManageService: AbstractExtInstanceManagementService;
    static schema: import("@opensumi/ide-core-browser").IJSONSchema;
    protected createSyntheticCommandId(menu: MenuActionFormat, prefix: string): string;
    private getDataFromQuery;
    contribute(): void;
}
//# sourceMappingURL=menu.d.ts.map