// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { GitStatusEntry } from "./GitStatusEntry";

/**
 * Result of `git_default_branch_diff`. `None` (the outer
 * `Option`) means "default-branch comparison isn't applicable
 * here": no repo, no resolvable default branch, HEAD is
 * detached, HEAD points at the default branch itself, or no
 * merge-base exists. The frontend treats those cases as "stay
 * in Head mode regardless of the toggle".
 */
export type BranchDiffStatus = { 
/**
 * SHA of `merge-base(HEAD, default-branch)`. Stable while
 * HEAD and the default branch's tip don't move; the diff
 * view + change gutter reads file content at this rev when
 * the baseline is `Default`.
 */
mergeBase: string, 
/**
 * Human-readable name of the default branch we resolved
 * against — e.g. `"origin/main"`. Surfaced in the SCM panel
 * header so the toggle's label can read `vs main` /
 * `vs master` correctly.
 */
defaultBranchRef: string, 
/**
 * File-level changes from `merge_base` to the working tree
 * (committed + uncommitted, no rename detection — same
 * `--no-renames` discipline as the regular porcelain
 * pipeline so renames split into `Deleted(old) +
 * Added(new)`). Untracked files aren't in `git diff` against
 * a tree-ish, so they don't appear here — matches the user
 * mental model of "modified / added / deleted vs main".
 */
entries: Array<GitStatusEntry>, };
