import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri"; import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service"; import { IExtensionRecommendations, RecommendationsNotificationResult } from "../../../../platform/extensionRecommendations/common/extensionRecommendations.js"; import { IExtensionRecommendationNotificationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionRecommendations/common/extensionRecommendations.service"; import { INotificationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service"; import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service"; import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service"; import { IUriIdentityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service"; import { IUserDataSyncEnablementService } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataSync/common/userDataSync.service"; import { IExtensionsWorkbenchService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions.service"; import { IWorkbenchEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service"; import { IWorkbenchExtensionEnablementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service"; import { IWorkbenchExtensionManagementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service"; import { IExtensionIgnoredRecommendationsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionRecommendations/common/extensionRecommendations.service"; export declare class ExtensionRecommendationNotificationService extends Disposable implements IExtensionRecommendationNotificationService { private readonly configurationService; private readonly storageService; private readonly notificationService; private readonly telemetryService; private readonly extensionsWorkbenchService; private readonly extensionManagementService; private readonly extensionEnablementService; private readonly extensionIgnoredRecommendationsService; private readonly userDataSyncEnablementService; private readonly workbenchEnvironmentService; private readonly uriIdentityService; readonly _serviceBrand: undefined; get ignoredRecommendations(): string[]; private recommendedExtensions; private recommendationSources; private hideVisibleNotificationPromise; private visibleNotification; private pendingNotificaitons; constructor(configurationService: IConfigurationService, storageService: IStorageService, notificationService: INotificationService, telemetryService: ITelemetryService, extensionsWorkbenchService: IExtensionsWorkbenchService, extensionManagementService: IWorkbenchExtensionManagementService, extensionEnablementService: IWorkbenchExtensionEnablementService, extensionIgnoredRecommendationsService: IExtensionIgnoredRecommendationsService, userDataSyncEnablementService: IUserDataSyncEnablementService, workbenchEnvironmentService: IWorkbenchEnvironmentService, uriIdentityService: IUriIdentityService); hasToIgnoreRecommendationNotifications(): boolean; promptImportantExtensionsInstallNotification(extensionRecommendations: IExtensionRecommendations): Promise; promptWorkspaceRecommendations(recommendations: Array): Promise; private promptRecommendationsNotification; private showRecommendationsNotification; private waitUntilRecommendationsAreInstalled; /** * Show recommendations in Queue * At any time only one recommendation is shown * If a new recommendation comes in * => If no recommendation is visible, show it immediately * => Otherwise, add to the pending queue * => If it is not exe based and has higher or same priority as current, hide the current notification after showing it for 3s. * => Otherwise wait until the current notification is hidden. */ private doShowRecommendationsNotification; private showNextNotification; /** * Return the recent high priroity pending notification */ private getNextPendingNotificationIndex; private hideVisibleNotification; private unsetVisibileNotification; private getInstallableExtensions; private addToImportantRecommendationsIgnore; private setIgnoreRecommendationsConfig; private _registerP; }