/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { Disposable } from "../../../base/common/lifecycle.mjs";
import { URI } from "../../../base/common/uri.mjs";
import { IConfigurationService } from "../../configuration/common/configuration.mjs";
import { INativeEnvironmentService } from "../../environment/common/environment.mjs";
import { ExtensionVerificationStatus } from "../common/abstractExtensionManagementService.mjs";
import { IExtensionGalleryService, IGalleryExtension, InstallOperation } from "../common/extensionManagement.mjs";
import { IExtensionSignatureVerificationService } from "./extensionSignatureVerificationService.mjs";
import { IFileService } from "../../files/common/files.mjs";
import { ILogService } from "../../log/common/log.mjs";
import { IProductService } from "../../product/common/productService.mjs";
export declare class ExtensionsDownloader extends Disposable {
    private readonly fileService;
    private readonly extensionGalleryService;
    private readonly configurationService;
    private readonly productService;
    private readonly extensionSignatureVerificationService;
    private readonly logService;
    private static readonly SignatureArchiveExtension;
    readonly extensionsDownloadDir: URI;
    private readonly cache;
    private readonly cleanUpPromise;
    constructor(environmentService: INativeEnvironmentService, fileService: IFileService, extensionGalleryService: IExtensionGalleryService, configurationService: IConfigurationService, productService: IProductService, extensionSignatureVerificationService: IExtensionSignatureVerificationService, logService: ILogService);
    download(extension: IGalleryExtension, operation: InstallOperation): Promise<{
        readonly location: URI;
        readonly verificationStatus: ExtensionVerificationStatus;
    }>;
    private shouldVerifySignature;
    private downloadSignatureArchive;
    private downloadFile;
    delete(location: URI): Promise<void>;
    private rename;
    private cleanUp;
    private getName;
}
