namespace marlin.core.functional; public interface IGitClient { Task> GetRemoteRefs(string remote); Task Init(string repoPath); Task FetchTrees(string repoPath, string remote, IEnumerable refs, bool skipBlobs = false); Task Checkout(string repoPath, string remote, string branch, string commit); Task ListTree(string repoPath, string hash, string filterPath = "."); Task CatFile(string repoPath, string hash, string fileName); }