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

import { URI } from '@sussudio/base/common/uri.mjs';
import { IEnvironmentService } from '../../environment/common/environment.mjs';
import { IFileService } from '../../files/common/files.mjs';
import { IStorageService } from '../../storage/common/storage.mjs';
import { IUriIdentityService } from '../../uriIdentity/common/uriIdentity.mjs';
import {
	ISyncResourceHandle,
	IUserDataSyncBackupStoreService,
	IUserDataSyncLogService,
	IUserDataSyncStoreService,
	SyncResource,
	IUserDataSyncResourceProviderService,
	ISyncUserDataProfile,
	IUserDataSyncResource,
} from './userDataSync.mjs';
import { IUserDataProfile, IUserDataProfilesService } from '../../userDataProfile/common/userDataProfile.mjs';
import { IConfigurationService } from '../../configuration/common/configuration.mjs';
import { IInstantiationService } from '../../instantiation/common/instantiation.mjs';
export declare class UserDataSyncResourceProviderService implements IUserDataSyncResourceProviderService {
	private readonly userDataSyncStoreService;
	private readonly userDataSyncBackupStoreService;
	protected readonly logService: IUserDataSyncLogService;
	private readonly environmentService;
	private readonly storageService;
	private readonly fileService;
	private readonly userDataProfilesService;
	private readonly configurationService;
	private readonly instantiationService;
	_serviceBrand: any;
	private static readonly NOT_EXISTING_RESOURCE;
	private static readonly REMOTE_BACKUP_AUTHORITY;
	private static readonly LOCAL_BACKUP_AUTHORITY;
	private readonly extUri;
	constructor(
		userDataSyncStoreService: IUserDataSyncStoreService,
		userDataSyncBackupStoreService: IUserDataSyncBackupStoreService,
		logService: IUserDataSyncLogService,
		uriIdentityService: IUriIdentityService,
		environmentService: IEnvironmentService,
		storageService: IStorageService,
		fileService: IFileService,
		userDataProfilesService: IUserDataProfilesService,
		configurationService: IConfigurationService,
		instantiationService: IInstantiationService,
	);
	getRemoteSyncedProfiles(): Promise<ISyncUserDataProfile[]>;
	getRemoteSyncResourceHandles(
		syncResource: SyncResource,
		profile: ISyncUserDataProfile | undefined,
	): Promise<ISyncResourceHandle[]>;
	getLocalSyncResourceHandles(syncResource: SyncResource, profile: IUserDataProfile): Promise<ISyncResourceHandle[]>;
	resolveUserDataSyncResource({ uri }: ISyncResourceHandle): IUserDataSyncResource | undefined;
	getAssociatedResources({ uri }: ISyncResourceHandle): Promise<
		{
			resource: URI;
			comparableResource: URI;
		}[]
	>;
	getMachineId({ uri }: ISyncResourceHandle): Promise<string | undefined>;
	resolveContent(uri: URI): Promise<string | null>;
	private getContentFromStore;
	private resolveNodeContent;
	private resolveLatestContent;
	private getSettingsAssociatedResources;
	private resolveSettingsNodeContent;
	private getKeybindingsAssociatedResources;
	private resolveKeybindingsNodeContent;
	private getTasksAssociatedResources;
	private resolveTasksNodeContent;
	private getSnippetsAssociatedResources;
	private resolveSnippetsNodeContent;
	private getExtensionsAssociatedResources;
	private resolveExtensionsNodeContent;
	private resolveLatestExtensionsContent;
	private getGlobalStateAssociatedResources;
	private resolveGlobalStateNodeContent;
	private resolveLatestGlobalStateContent;
	private getProfilesAssociatedResources;
	private resolveProfileNodeContent;
	private resolveLatestProfilesContent;
	private toUri;
	private resolveUri;
	private parseSyncData;
	private getUserData;
}
