import { CancellationToken } from "../../../base/common/cancellation.js"; import { IStringDictionary } from "../../../base/common/collections.js"; import { URI } from "../../../base/common/uri.js"; import { IConfigurationService } from "../../configuration/common/configuration.service.js"; import { IEnvironmentService } from "../../environment/common/environment.service.js"; import { IFileService } from "../../files/common/files.service.js"; import { ILogService } from "../../log/common/log.service.js"; import { IStorageService } from "../../storage/common/storage.service.js"; import { ITelemetryService } from "../../telemetry/common/telemetry.service.js"; import { IUriIdentityService } from "../../uriIdentity/common/uriIdentity.service.js"; import { AbstractInitializer, AbstractSynchroniser, IAcceptResult, IMergeResult, IResourcePreview } from "./abstractSynchronizer.js"; import { IGlobalState, IRemoteUserData, IStorageValue, IUserData, IUserDataSynchroniser, UserDataSyncStoreType } from "./userDataSync.js"; import { IUserDataSyncLogService } from "./userDataSync.service.js"; import { IUserDataSyncEnablementService } from "./userDataSync.service.js"; import { IUserDataSyncLocalStoreService } from "./userDataSync.service.js"; import { IUserDataSyncStoreService } from "./userDataSync.service.js"; import { UserDataSyncStoreClient } from "./userDataSyncStoreService.js"; import { IUserDataProfile } from "../../userDataProfile/common/userDataProfile.js"; import { IUserDataProfilesService } from "../../userDataProfile/common/userDataProfile.service.js"; import { IUserDataProfileStorageService } from "../../userDataProfile/common/userDataProfileStorageService.service.js"; import { IInstantiationService } from "../../instantiation/common/instantiation.js"; type StorageKeys = { machine: string[]; user: string[]; unregistered: string[]; }; interface IGlobalStateResourceMergeResult extends IAcceptResult { readonly local: { added: IStringDictionary; removed: string[]; updated: IStringDictionary; }; readonly remote: { added: string[]; removed: string[]; updated: string[]; all: IStringDictionary | null; }; } interface IGlobalStateResourcePreview extends IResourcePreview { readonly localUserData: IGlobalState; readonly previewResult: IGlobalStateResourceMergeResult; readonly storageKeys: StorageKeys; } export declare function stringify(globalState: IGlobalState, format: boolean): string; /** * Synchronises global state that includes * - Global storage with user scope * - Locale from argv properties * * Global storage is synced without checking version just like other resources (settings, keybindings). * If there is a change in format of the value of a storage key which requires migration then * Owner of that key should remove that key from user scope and replace that with new user scoped key. */ export declare class GlobalStateSynchroniser extends AbstractSynchroniser implements IUserDataSynchroniser { private readonly userDataProfileStorageService; protected readonly version: number; private readonly previewResource; private readonly baseResource; private readonly localResource; private readonly remoteResource; private readonly acceptedResource; private readonly localGlobalStateProvider; constructor(profile: IUserDataProfile, collection: string | undefined, userDataProfileStorageService: IUserDataProfileStorageService, fileService: IFileService, userDataSyncStoreService: IUserDataSyncStoreService, userDataSyncLocalStoreService: IUserDataSyncLocalStoreService, logService: IUserDataSyncLogService, environmentService: IEnvironmentService, userDataSyncEnablementService: IUserDataSyncEnablementService, telemetryService: ITelemetryService, configurationService: IConfigurationService, storageService: IStorageService, uriIdentityService: IUriIdentityService, instantiationService: IInstantiationService); protected generateSyncPreview(remoteUserData: IRemoteUserData, lastSyncUserData: IRemoteUserData | null, isRemoteDataFromCurrentMachine: boolean): Promise; protected hasRemoteChanged(lastSyncUserData: IRemoteUserData): Promise; protected getMergeResult(resourcePreview: IGlobalStateResourcePreview, token: CancellationToken): Promise; protected getAcceptResult(resourcePreview: IGlobalStateResourcePreview, resource: URI, content: string | null | undefined, token: CancellationToken): Promise; private acceptLocal; private acceptRemote; protected applyResult(remoteUserData: IRemoteUserData, lastSyncUserData: IRemoteUserData | null, resourcePreviews: [ IGlobalStateResourcePreview, IGlobalStateResourceMergeResult ][], force: boolean): Promise; resolveContent(uri: URI): Promise; hasLocalData(): Promise; private getStorageKeys; } export declare class LocalGlobalStateProvider { private readonly fileService; private readonly environmentService; private readonly userDataProfileStorageService; private readonly logService; constructor(fileService: IFileService, environmentService: IEnvironmentService, userDataProfileStorageService: IUserDataProfileStorageService, logService: IUserDataSyncLogService); getLocalGlobalState(profile: IUserDataProfile): Promise; private getLocalArgvContent; writeLocalGlobalState({ added, removed, updated }: { added: IStringDictionary; updated: IStringDictionary; removed: string[]; }, profile: IUserDataProfile): Promise; } export declare class GlobalStateInitializer extends AbstractInitializer { constructor(storageService: IStorageService, fileService: IFileService, userDataProfilesService: IUserDataProfilesService, environmentService: IEnvironmentService, logService: IUserDataSyncLogService, uriIdentityService: IUriIdentityService); protected doInitialize(remoteUserData: IRemoteUserData): Promise; } export declare class UserDataSyncStoreTypeSynchronizer { private readonly userDataSyncStoreClient; private readonly storageService; private readonly environmentService; private readonly fileService; private readonly logService; constructor(userDataSyncStoreClient: UserDataSyncStoreClient, storageService: IStorageService, environmentService: IEnvironmentService, fileService: IFileService, logService: ILogService); getSyncStoreType(userData: IUserData): UserDataSyncStoreType | undefined; sync(userDataSyncStoreType: UserDataSyncStoreType): Promise; private doSync; private parseGlobalState; } export {};