import { Event } from "../../../../base/common/event.js"; import { IMarkdownString } from "../../../../base/common/htmlContent.js"; import { URI } from "../../../../base/common/uri.js"; import { InstallExtensionResult, DidUninstallExtensionEvent, DidUpdateExtensionMetadata, type IGalleryExtension, type ILocalExtension, type InstallExtensionInfo, type InstallOptions, type Metadata } from "../../../../platform/extensionManagement/common/extensionManagement.js"; import { IExtensionManagementService } from "../../../../platform/extensionManagement/common/extensionManagement.service.js"; import { IExtension, type ExtensionType, type IExtensionManifest } from "../../../../platform/extensions/common/extensions.js"; import { DidChangeProfileEvent, type DidChangeProfileForServerEvent, type DidUninstallExtensionOnServerEvent, type EnablementState, type ExtensionInstallLocation, type IExtensionManagementServer, type InstallExtensionOnServerEvent, type IPublisherInfo, type IResourceExtension, type IScannedExtension, type ScanOptions, type UninstallExtensionOnServerEvent } from "./extensionManagement.js"; export declare const IProfileAwareExtensionManagementService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier; export interface IProfileAwareExtensionManagementService extends IExtensionManagementService { readonly onProfileAwareDidInstallExtensions: Event; readonly onProfileAwareDidUninstallExtension: Event; readonly onProfileAwareDidUpdateExtensionMetadata: Event; readonly onDidChangeProfile: Event; } export declare const IExtensionManagementServerService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier; export interface IExtensionManagementServerService { readonly _serviceBrand: undefined; readonly localExtensionManagementServer: IExtensionManagementServer | null; readonly remoteExtensionManagementServer: IExtensionManagementServer | null; readonly webExtensionManagementServer: IExtensionManagementServer | null; getExtensionManagementServer(extension: IExtension): IExtensionManagementServer | null; getExtensionInstallLocation(extension: IExtension): ExtensionInstallLocation | null; } export declare const IWorkbenchExtensionManagementService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier; export interface IWorkbenchExtensionManagementService extends IProfileAwareExtensionManagementService { readonly _serviceBrand: undefined; readonly onInstallExtension: Event; readonly onDidInstallExtensions: Event; readonly onUninstallExtension: Event; readonly onDidUninstallExtension: Event; readonly onDidChangeProfile: Event; readonly onDidEnableExtensions: Event; readonly onProfileAwareDidInstallExtensions: Event; readonly onProfileAwareDidUninstallExtension: Event; readonly onProfileAwareDidUpdateExtensionMetadata: Event; getExtensions(locations: URI[]): Promise; getInstalledWorkspaceExtensionLocations(): URI[]; getInstalledWorkspaceExtensions(includeInvalid: boolean): Promise; canInstall(extension: IGalleryExtension | IResourceExtension): Promise; getInstallableServers(extension: IGalleryExtension): Promise; installVSIX(location: URI, manifest: IExtensionManifest, installOptions?: InstallOptions): Promise; installFromGallery(gallery: IGalleryExtension, installOptions?: InstallOptions, servers?: IExtensionManagementServer[]): Promise; installFromLocation(location: URI): Promise; installResourceExtension(extension: IResourceExtension, installOptions: InstallOptions): Promise; updateFromGallery(gallery: IGalleryExtension, extension: ILocalExtension, installOptions?: InstallOptions): Promise; updateMetadata(local: ILocalExtension, metadata: Partial): Promise; requestPublisherTrust(extensions: InstallExtensionInfo[]): Promise; isPublisherTrusted(extension: IGalleryExtension): boolean; getTrustedPublishers(): IPublisherInfo[]; trustPublishers(...publishers: IPublisherInfo[]): void; untrustPublishers(...publishers: string[]): void; } export declare const IWorkbenchExtensionEnablementService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier; export interface IWorkbenchExtensionEnablementService { readonly _serviceBrand: undefined; /** * Event to listen on for extension enablement changes */ readonly onEnablementChanged: Event; /** * Returns the enablement state for the given extension */ getEnablementState(extension: IExtension): EnablementState; /** * Returns the enablement states for the given extensions * @param extensions list of extensions * @param workspaceTypeOverrides Workspace type overrides */ getEnablementStates(extensions: IExtension[], workspaceTypeOverrides?: { trusted?: boolean; }): EnablementState[]; /** * Returns the enablement states for the dependencies of the given extension */ getDependenciesEnablementStates(extension: IExtension): [ IExtension, EnablementState ][]; /** * Returns `true` if the enablement can be changed. */ canChangeEnablement(extension: IExtension): boolean; /** * Returns `true` if the enablement can be changed. */ canChangeWorkspaceEnablement(extension: IExtension): boolean; /** * Returns `true` if the given extension is enabled. */ isEnabled(extension: IExtension): boolean; /** * Returns `true` if the given enablement state is enabled enablement state. */ isEnabledEnablementState(enablementState: EnablementState): boolean; /** * Returns `true` if the given extension identifier is disabled globally. * Extensions can be disabled globally or in workspace or both. * If an extension is disabled in both then enablement state shows only workspace. * This will */ isDisabledGlobally(extension: IExtension): boolean; /** * Enable or disable the given extension. * if `workspace` is `true` then enablement is done for workspace, otherwise globally. * * Returns a promise that resolves to boolean value. * if resolves to `true` then requires restart for the change to take effect. * * Throws error if enablement is requested for workspace and there is no workspace */ setEnablement(extensions: IExtension[], state: EnablementState): Promise; /** * Updates the enablement state of the extensions when workspace trust changes. */ updateExtensionsEnablementsWhenWorkspaceTrustChanges(): Promise; } export declare const IWebExtensionsScannerService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier; export interface IWebExtensionsScannerService { readonly _serviceBrand: undefined; scanSystemExtensions(): Promise; scanUserExtensions(profileLocation: URI, options?: ScanOptions): Promise; scanExtensionsUnderDevelopment(): Promise; scanExistingExtension(extensionLocation: URI, extensionType: ExtensionType, profileLocation: URI): Promise; addExtension(location: URI, metadata: Metadata, profileLocation: URI): Promise; addExtensionFromGallery(galleryExtension: IGalleryExtension, metadata: Metadata, profileLocation: URI): Promise; removeExtension(extension: IScannedExtension, profileLocation: URI): Promise; copyExtensions(fromProfileLocation: URI, toProfileLocation: URI, filter: (extension: IScannedExtension) => boolean): Promise; updateMetadata(extension: IScannedExtension, metaData: Partial, profileLocation: URI): Promise; scanExtensionManifest(extensionLocation: URI): Promise; }