import { WithEventBus } from '@opensumi/ide-core-common';
import { AbstractExtensionManagementService, ChangeExtensionOptions, IExtensionProps, IExtraMetaData } from '../common';
import { Extension } from './extension';
/**
 * 为插件市场面板提供数据/交互
 */
export declare class ExtensionManagementService extends WithEventBus implements AbstractExtensionManagementService {
    private readonly extInstanceManagementService;
    private readonly extensionNodeClient;
    private readonly contributesService;
    private readonly sumiContributesService;
    private fileService;
    private readonly logger;
    /**
     * 通过 extensionPath 获取插件实例序列化数据及从 node 层获取的 extraMetadata
     */
    getExtensionProps(extensionPath: string, extraMetaData?: IExtraMetaData): Promise<IExtensionProps | undefined>;
    /**
     * 通过 extensionPath 获取插件实例
     */
    getExtensionByPath(extensionPath: string): Extension | undefined;
    /**
     * 通过 extension id 获取插件实例
     */
    getExtensionByExtId(extensionId: string): Extension | undefined;
    /**
     * 安装插件之后开始激活
     */
    postChangedExtension(options: ChangeExtensionOptions): Promise<void>;
    postChangedExtension(upgrade: boolean, path: string, oldExtensionPath?: string): Promise<void>;
    /**
     * 启用插件
     */
    postEnableExtension(extensionPath: string): Promise<void>;
    /**
     * 禁用插件
     */
    postDisableExtension(extensionPath: string): Promise<void>;
    /**
     * 卸载插件
     */
    postUninstallExtension(extensionPath: string): Promise<void>;
    /**
     * @deprecated 建议直接用 AbstractExtInstanceManagementService#getExtensionInstances 后自行 map#toJSON 即可
     */
    getAllExtensionJson(): IExtensionProps[];
    /**
     * 通过 extensionPath 来禁用插件
     */
    private disableExtension;
    /**
     * 激活插件实例
     */
    private enableExtension;
    /**
     * 删除插件文件
     */
    private removeExtension;
    /**
     * 通过 extensionPath 来卸载插件
     */
    private uninstallExtension;
}
//# sourceMappingURL=extension-management.service.d.ts.map