/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { IConfigurationService } from "../../configuration/common/configuration.mjs";
import { IEnvironmentMainService } from "../../environment/electron-main/environmentMainService.mjs";
import { IFileService } from "../../files/common/files.mjs";
import { ILifecycleMainService } from "../../lifecycle/electron-main/lifecycleMainService.mjs";
import { ILogService } from "../../log/common/log.mjs";
import { INativeHostMainService } from "../../native/electron-main/nativeHostMainService.mjs";
import { IProductService } from "../../product/common/productService.mjs";
import { IRequestService } from "../../request/common/request.mjs";
import { ITelemetryService } from "../../telemetry/common/telemetry.mjs";
import { AvailableForDownload, UpdateType } from "../common/update.mjs";
import { AbstractUpdateService } from "./abstractUpdateService.mjs";
export declare class Win32UpdateService extends AbstractUpdateService {
    private readonly telemetryService;
    private readonly fileService;
    private readonly nativeHostMainService;
    private availableUpdate;
    get cachePath(): Promise<string>;
    constructor(lifecycleMainService: ILifecycleMainService, configurationService: IConfigurationService, telemetryService: ITelemetryService, environmentMainService: IEnvironmentMainService, requestService: IRequestService, logService: ILogService, fileService: IFileService, nativeHostMainService: INativeHostMainService, productService: IProductService);
    initialize(): Promise<void>;
    protected buildUpdateFeedUrl(quality: string): string | undefined;
    protected doCheckForUpdates(context: any): void;
    protected doDownloadUpdate(state: AvailableForDownload): Promise<void>;
    private getUpdatePackagePath;
    private cleanup;
    protected doApplyUpdate(): Promise<void>;
    protected doQuitAndInstall(): void;
    protected getUpdateType(): UpdateType;
    _applySpecificUpdate(packagePath: string): Promise<void>;
}
