// Copyright (c) 2025 TerraByte Inc.
//
// Defines a generic interface for any operation that can result in a merge
// conflict, such as a pull or a stash apply. This allows the conflict
// resolution UI to be agnostic to the source of the conflict.
using Terra.Arbitrator.Promises;
using System.Collections.Generic;
namespace Terra.Arbitrator.Services
{
///
/// Provides a standardized way to handle different types of merge conflicts.
///
public interface IConflictSource
{
public string MineLabel { get; }
public string TheirsLabel { get; }
///
/// Executes the logic to resolve the conflicts based on the user's choices.
///
/// The list of files and their chosen resolution.
/// A promise that resolves with a success message or rejects with an error.
public IPromise Resolve(List resolutions);
}
}