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

import { IStringDictionary } from '@sussudio/base/common/collections.mjs';
import { ILogService } from '../../log/common/log.mjs';
import { IStorageValue } from './userDataSync.mjs';
export interface IMergeResult {
	local: {
		added: IStringDictionary<IStorageValue>;
		removed: string[];
		updated: IStringDictionary<IStorageValue>;
	};
	remote: {
		added: string[];
		removed: string[];
		updated: string[];
		all: IStringDictionary<IStorageValue> | null;
	};
}
export declare function merge(
	localStorage: IStringDictionary<IStorageValue>,
	remoteStorage: IStringDictionary<IStorageValue> | null,
	baseStorage: IStringDictionary<IStorageValue> | null,
	storageKeys: {
		machine: ReadonlyArray<string>;
		unregistered: ReadonlyArray<string>;
	},
	logService: ILogService,
): IMergeResult;
