/*---------------------------------------------------------------------------------------------
 *  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 "../../../base/common/event.mjs";
import { Disposable } from "../../../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;
}
