import { CancellationToken } from "../../../../../base/common/cancellation.js"; import { URI } from "../../../../../base/common/uri.js"; import { IInstallPluginFromSourceOptions, IInstallPluginFromSourceResult, IUpdateAllPluginsOptions, IUpdateAllPluginsResult } from "./pluginInstallService.js"; import { IMarketplacePlugin } from "@codingame/monaco-vscode-chat-service-override/vscode/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService"; export declare const IPluginInstallService: import("../../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier; export interface IPluginInstallService { readonly _serviceBrand: undefined; /** * Clones the marketplace repository (if not already cached) and registers * the plugin in the marketplace service's installed plugins storage. */ installPlugin(plugin: IMarketplacePlugin): Promise; /** * Installs a plugin directly from a source location string. Accepts * GitHub shorthand (`owner/repo`) or a full git clone URL. Clones the * repository, reads marketplace metadata to discover plugins, and * registers the selected plugin. * * When {@link IInstallPluginFromSourceOptions.plugin} is set, targets * a specific plugin, installs it, and returns it. */ installPluginFromSource(source: string, options?: IInstallPluginFromSourceOptions): Promise; /** * Synchronously validates the format of a plugin source string. * Returns an error message if the format is invalid, or undefined if valid. */ validatePluginSource(source: string): string | undefined; /** * Installs a plugin from an already-validated source string. * Handles trust, cloning, scanning, and registration. Returns a result * with an optional error message (e.g. no plugins found). * * When {@link IInstallPluginFromSourceOptions.plugin} is set, targets * a specific plugin, installs it, and returns it in * {@link IInstallPluginFromSourceResult.matchedPlugin}. */ installPluginFromValidatedSource(source: string, options?: IInstallPluginFromSourceOptions): Promise; /** * Pulls the latest changes for an already-cloned marketplace repository. */ updatePlugin(plugin: IMarketplacePlugin): Promise; /** * Updates all installed plugins. First pulls each unique marketplace * repository, then updates non-relative-path plugins individually * (git pull, npm install, pip install, etc.). */ updateAllPlugins(options: IUpdateAllPluginsOptions, token: CancellationToken): Promise; /** * Returns the URI where a marketplace plugin would be installed on disk. * Used to determine whether a marketplace plugin is already installed. */ getPluginInstallUri(plugin: IMarketplacePlugin): URI; }