import { ExtensionType, IExtension, IExtensionManifest } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions";
import { IBuiltinExtensionsScannerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions.service";
import { IBrowserWorkbenchEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/browser/environmentService.service";
import { IScannedExtension, ScanOptions } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionManagement";
import { IWebExtensionsScannerService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service";
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
import { IGalleryExtension, Metadata } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagement";
import { IExtensionGalleryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagement.service";
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
import { IExtensionManifestPropertiesService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionManifestPropertiesService.service";
import { IExtensionResourceLoaderService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionResourceLoader/common/extensionResourceLoader.service";
import { IExtensionStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionStorage.service";
import { ILifecycleService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service";
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service";
import { IUserDataProfilesService } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile.service";
import { IUriIdentityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service";
export declare class WebExtensionsScannerService extends Disposable implements IWebExtensionsScannerService {
    private readonly environmentService;
    private readonly builtinExtensionsScannerService;
    private readonly fileService;
    private readonly logService;
    private readonly galleryService;
    private readonly extensionManifestPropertiesService;
    private readonly extensionResourceLoaderService;
    private readonly extensionStorageService;
    private readonly storageService;
    private readonly productService;
    private readonly userDataProfilesService;
    private readonly uriIdentityService;
    readonly _serviceBrand: undefined;
    private readonly systemExtensionsCacheResource;
    private readonly customBuiltinExtensionsCacheResource;
    private readonly resourcesAccessQueueMap;
    private readonly extensionsEnabledWithApiProposalVersion;
    constructor(environmentService: IBrowserWorkbenchEnvironmentService, builtinExtensionsScannerService: IBuiltinExtensionsScannerService, fileService: IFileService, logService: ILogService, galleryService: IExtensionGalleryService, extensionManifestPropertiesService: IExtensionManifestPropertiesService, extensionResourceLoaderService: IExtensionResourceLoaderService, extensionStorageService: IExtensionStorageService, storageService: IStorageService, productService: IProductService, userDataProfilesService: IUserDataProfilesService, uriIdentityService: IUriIdentityService, lifecycleService: ILifecycleService);
    private _customBuiltinExtensionsInfoPromise;
    private readCustomBuiltinExtensionsInfoFromEnv;
    private checkAdditionalBuiltinExtensions;
    /**
     * All system extensions bundled with the product
     */
    private readSystemExtensions;
    /**
     * All extensions defined via `additionalBuiltinExtensions` API
     */
    private readCustomBuiltinExtensions;
    private getCustomBuiltinExtensionsFromLocations;
    private getCustomBuiltinExtensionsFromGallery;
    private getCustomBuiltinExtensionsFromCache;
    private _migrateExtensionsStoragePromise;
    private migrateExtensionsStorage;
    private updateCaches;
    private updateSystemExtensionsCache;
    private _updateCustomBuiltinExtensionsCachePromise;
    private updateCustomBuiltinExtensionsCache;
    private resolveBuiltinExtensionGalleryResources;
    private resolveBuiltinGalleryExtensions;
    private resolveDependenciesAndPackedExtensions;
    private getExtensionsWithDependenciesAndPackedExtensions;
    scanSystemExtensions(): Promise<IExtension[]>;
    scanUserExtensions(profileLocation: URI, scanOptions?: ScanOptions): Promise<IScannedExtension[]>;
    scanExtensionsUnderDevelopment(): Promise<IExtension[]>;
    scanExistingExtension(extensionLocation: URI, extensionType: ExtensionType, profileLocation: URI): Promise<IScannedExtension | null>;
    scanExtensionManifest(extensionLocation: URI): Promise<IExtensionManifest | null>;
    addExtensionFromGallery(galleryExtension: IGalleryExtension, metadata: Metadata, profileLocation: URI): Promise<IScannedExtension>;
    addExtension(location: URI, metadata: Metadata, profileLocation: URI): Promise<IScannedExtension>;
    removeExtension(extension: IScannedExtension, profileLocation: URI): Promise<void>;
    updateMetadata(extension: IScannedExtension, metadata: Partial<Metadata>, profileLocation: URI): Promise<IScannedExtension>;
    copyExtensions(fromProfileLocation: URI, toProfileLocation: URI, filter: (extension: IScannedExtension) => boolean): Promise<void>;
    private addWebExtension;
    private addToInstalledExtensions;
    private scanInstalledExtensions;
    private toWebExtensionFromGallery;
    private toWebExtensionFromExtensionGalleryResource;
    private getPackageNLSResourceMapFromResources;
    private toWebExtension;
    private toScannedExtension;
    private listExtensionResources;
    private translateManifest;
    private getExtensionManifest;
    private getTranslations;
    private readInstalledExtensions;
    private writeInstalledExtensions;
    private readCustomBuiltinExtensionsCache;
    private writeCustomBuiltinExtensionsCache;
    private readSystemExtensionsCache;
    private writeSystemExtensionsCache;
    private withWebExtensions;
    private migrateWebExtensions;
    private storeWebExtensions;
    private getResourceAccessQueue;
}
