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

import { FormattingOptions } from '@sussudio/base/common/jsonFormatter.mjs';
import { IConfigurationService } from '../../configuration/common/configuration.mjs';
import { IConflictSetting } from './userDataSync.mjs';
export interface IMergeResult {
	localContent: string | null;
	remoteContent: string | null;
	hasConflicts: boolean;
	conflictsSettings: IConflictSetting[];
}
export declare function getIgnoredSettings(
	defaultIgnoredSettings: string[],
	configurationService: IConfigurationService,
	settingsContent?: string,
): string[];
export declare function removeComments(content: string, formattingOptions: FormattingOptions): string;
export declare function updateIgnoredSettings(
	targetContent: string,
	sourceContent: string,
	ignoredSettings: string[],
	formattingOptions: FormattingOptions,
): string;
export declare function merge(
	originalLocalContent: string,
	originalRemoteContent: string,
	baseContent: string | null,
	ignoredSettings: string[],
	resolvedConflicts: {
		key: string;
		value: any | undefined;
	}[],
	formattingOptions: FormattingOptions,
): IMergeResult;
export declare function areSame(localContent: string, remoteContent: string, ignoredSettings: string[]): boolean;
export declare function isEmpty(content: string): boolean;
export declare function addSetting(
	key: string,
	sourceContent: string,
	targetContent: string,
	formattingOptions: FormattingOptions,
): string;
