src/vs/workbench/contrib/mergeEditor/browser/telemetry.ts/MergeEditorTelemetry/reportMergeEditorClosed
class MergeEditorTelemetry:	reportMergeEditorClosed(args: {
		conflictCount: number;
		combinableConflictCount: number;

		durationOpenedSecs: number;
		remainingConflictCount: number;
		accepted: boolean;

		conflictsResolvedWithBase: number;
		conflictsResolvedWithInput1: number;
		conflictsResolvedWithInput2: number;
		conflictsResolvedWithSmartCombination: number;

		manuallySolvedConflictCountThatEqualNone: number;
		manuallySolvedConflictCountThatEqualSmartCombine: number;
		manuallySolvedConflictCountThatEqualInput1: number;
		manuallySolvedConflictCountThatEqualInput2: number;

		manuallySolvedConflictCountThatEqualNoneAndStartedWithBase: number;
		manuallySolvedConflictCountThatEqualNoneAndStartedWithInput1: number;
		manuallySolvedConflictCountThatEqualNoneAndStartedWithInput2: number;
		manuallySolvedConflictCountThatEqualNoneAndStartedWithBothNonSmart: number;
		manuallySolvedConflictCountThatEqualNoneAndStartedWithBothSmart: number;
	}): void {
		this.telemetryService.publicLog2<{
			conflictCount: number;
			combinableConflictCount: number;

			durationOpenedSecs: number;
			remainingConflictCount: number;
			accepted: boolean;

			conflictsResolvedWithBase: number;
			conflictsResolvedWithInput1: number;
			conflictsResolvedWithInput2: number;
			conflictsResolvedWithSmartCombination: number;

			manuallySolvedConflictCountThatEqualNone: number;
			manuallySolvedConflictCountThatEqualSmartCombine: number;
			manuallySolvedConflictCountThatEqualInput1: number;
			manuallySolvedConflictCountThatEqualInput2: number;

			manuallySolvedConflictCountThatEqualNoneAndStartedWithBase: number;
			manuallySolvedConflictCountThatEqualNoneAndStartedWithInput1: number;
			manuallySolvedConflictCountThatEqualNoneAndStartedWithInput2: number;
			manuallySolvedConflictCountThatEqualNoneAndStartedWithBothNonSmart: number;
			manuallySolvedConflictCountThatEqualNoneAndStartedWithBothSmart: number;
		}, {
			owner: 'hediet';

			conflictCount: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'To understand how many conflicts typically occur' };
			combinableConflictCount: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'To evaluate how useful the smart-merge feature is' };

			durationOpenedSecs: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Indicates how long the merge editor was open before it was closed. This can be compared with the inline experience to investigate time savings.' };
			remainingConflictCount: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Indicates how many conflicts were skipped. Should be zero for a successful merge.' };
			accepted: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Indicates if the user completed the merge successfully or just closed the editor' };

			conflictsResolvedWithBase: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'To understand how many conflicts are resolved with base' };
			conflictsResolvedWithInput1: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'To understand how many conflicts are resolved with input1' };
			conflictsResolvedWithInput2: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'To understand how many conflicts are resolved with input2' };
			conflictsResolvedWithSmartCombination: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'To understand how many conflicts are resolved with smart combination' };

			manuallySolvedConflictCountThatEqualNone: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Indicates how many conflicts were solved manually that are not recognized by the merge editor.' };
			manuallySolvedConflictCountThatEqualSmartCombine: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Indicates how many conflicts were solved manually that equal the smart combination of the inputs.' };
			manuallySolvedConflictCountThatEqualInput1: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Indicates how many conflicts were solved manually that equal just input 1' };
			manuallySolvedConflictCountThatEqualInput2: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Indicates how many conflicts were solved manually that equal just input 2' };

			manuallySolvedConflictCountThatEqualNoneAndStartedWithBase: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Indicates how many manually solved conflicts that are not recognized started with base' };
			manuallySolvedConflictCountThatEqualNoneAndStartedWithInput1: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Indicates how many manually solved conflicts that are not recognized started with input1' };
			manuallySolvedConflictCountThatEqualNoneAndStartedWithInput2: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Indicates how many manually solved conflicts that are not recognized started with input2' };
			manuallySolvedConflictCountThatEqualNoneAndStartedWithBothNonSmart: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Indicates how many manually solved conflicts that are not recognized started with both (non-smart combination)' };
			manuallySolvedConflictCountThatEqualNoneAndStartedWithBothSmart: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Indicates how many manually solved conflicts that are not recognized started with both (smart-combination)' };

			comment: 'This event tracks when a user closes a merge editor. It also tracks how the user solved the merge conflicts. This data can be used to improve the UX of the merge editor. This event will be fired rarely (less than 200k per week)';
		}>('mergeEditor.closed', {
			conflictCount: args.conflictCount,
			combinableConflictCount: args.combinableConflictCount,

			durationOpenedSecs: args.durationOpenedSecs,
			remainingConflictCount: args.remainingConflictCount,
			accepted: args.accepted,

			conflictsResolvedWithBase: args.conflictsResolvedWithBase,
			conflictsResolvedWithInput1: args.conflictsResolvedWithInput1,
			conflictsResolvedWithInput2: args.conflictsResolvedWithInput2,
			conflictsResolvedWithSmartCombination: args.conflictsResolvedWithSmartCombination,

			manuallySolvedConflictCountThatEqualNone: args.manuallySolvedConflictCountThatEqualNone,
			manuallySolvedConflictCountThatEqualSmartCombine: args.manuallySolvedConflictCountThatEqualSmartCombine,
			manuallySolvedConflictCountThatEqualInput1: args.manuallySolvedConflictCountThatEqualInput1,
			manuallySolvedConflictCountThatEqualInput2: args.manuallySolvedConflictCountThatEqualInput2,

			manuallySolvedConflictCountThatEqualNoneAndStartedWithBase: args.manuallySolvedConflictCountThatEqualNoneAndStartedWithBase,
			manuallySolvedConflictCountThatEqualNoneAndStartedWithInput1: args.manuallySolvedConflictCountThatEqualNoneAndStartedWithInput1,
			manuallySolvedConflictCountThatEqualNoneAndStartedWithInput2: args.manuallySolvedConflictCountThatEqualNoneAndStartedWithInput2,
			manuallySolvedConflictCountThatEqualNoneAndStartedWithBothNonSmart: args.manuallySolvedConflictCountThatEqualNoneAndStartedWithBothNonSmart,
			manuallySolvedConflictCountThatEqualNoneAndStartedWithBothSmart: args.manuallySolvedConflictCountThatEqualNoneAndStartedWithBothSmart,
		});
	}