/*---------------------------------------------------------------------------------------------
 *  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>;
}
