namespace RackPeek.Domain.Git; public interface IGitRepository { bool IsAvailable { get; } void Init(); GitRepoStatus GetStatus(); void StageAll(); void Commit(string message); string GetDiff(); string[] GetChangedFiles(); void RestoreAll(); string GetCurrentBranch(); GitLogEntry[] GetLog(int count); bool HasRemote(); GitSyncStatus FetchAndGetSyncStatus(); void Push(); void Pull(); void AddRemote(string name, string url); }