/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

import { Event } from '@sussudio/base/common/event.mjs';
import { Disposable } from '@sussudio/base/common/lifecycle.mjs';
import { IEnvironmentService } from '../../environment/common/environment.mjs';
import { IStorageService } from '../../storage/common/storage.mjs';
import { ITelemetryService } from '../../telemetry/common/telemetry.mjs';
import { IUserDataSyncEnablementService, IUserDataSyncStoreManagementService, SyncResource } from './userDataSync.mjs';
export declare class UserDataSyncEnablementService extends Disposable implements IUserDataSyncEnablementService {
	private readonly storageService;
	private readonly telemetryService;
	protected readonly environmentService: IEnvironmentService;
	private readonly userDataSyncStoreManagementService;
	_serviceBrand: any;
	private _onDidChangeEnablement;
	readonly onDidChangeEnablement: Event<boolean>;
	private _onDidChangeResourceEnablement;
	readonly onDidChangeResourceEnablement: Event<[SyncResource, boolean]>;
	constructor(
		storageService: IStorageService,
		telemetryService: ITelemetryService,
		environmentService: IEnvironmentService,
		userDataSyncStoreManagementService: IUserDataSyncStoreManagementService,
	);
	isEnabled(): boolean;
	canToggleEnablement(): boolean;
	setEnablement(enabled: boolean): void;
	isResourceEnabled(resource: SyncResource): boolean;
	setResourceEnablement(resource: SyncResource, enabled: boolean): void;
	getResourceSyncStateVersion(resource: SyncResource): string | undefined;
	private storeResourceEnablement;
	private onDidStorageChange;
}
