import { IInputBaseProps } from '@opensumi/ide-components';
import { IMenubarItem, ISubmenuItem } from '@opensumi/ide-core-browser/lib/menu/next';
import { ISumiMenuExtendInfo } from '@opensumi/ide-core-common';
import { ThemeType } from '@opensumi/ide-theme';
import { IExtensionContributions } from '../vscode/extension';
import type { IToolbarButtonContribution, IToolbarSelectContribution } from '../../browser/sumi/types';
import type { ITabBarViewContribution } from '../../browser/sumi-browser/types';
export interface IContributeMenubarItem extends Omit<IMenubarItem, 'label'> {
    title: IMenubarItem['label'];
}
export interface IContributedSubmenu extends Omit<ISubmenuItem, 'submenu' | 'label' | 'order' | 'iconClass'> {
    id: ISubmenuItem['submenu'];
    title?: ISubmenuItem['label'];
    when?: string;
    icon?: {
        [index in ThemeType]: string;
    } | string;
}
export interface IBrowserView {
    type: 'add';
    view: Array<{
        id: string;
        icon: string;
        [prop: string]: any;
    }>;
}
export interface ISumiExtensionContributions extends IExtensionContributions {
    menubars?: IContributeMenubarItem[];
    browserViews?: {
        [location: string]: {
            type: 'add' | 'replace';
            view: ITabBarViewContribution[];
        };
    };
    toolbar?: {
        actions?: Array<IToolbarButtonContribution | IToolbarSelectContribution>;
    };
    viewsProxies?: string[];
    workerMain?: string;
    nodeMain?: string;
    browserMain?: string;
    menuExtend?: {
        [menuId: string]: Array<ISumiMenuExtendInfo>;
    };
    scm?: {
        additional?: {
            input?: Omit<IInputBaseProps, 'addonBefore' | 'addonAfter'> & {
                addonBefore?: string[];
                addonAfter?: string[];
            };
        };
    };
}
//# sourceMappingURL=extension.d.ts.map