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

/**
 * Per-file blame report, one entry per source line. Indexing is
 * 0-based so it lines up directly with CM's `doc.line(n + 1)`
 * accessor; empty trailing lines (the "no-newline-at-EOF" corner
 * case) are not represented — `git blame` skips them.
 *
 * `None` is returned to callers when blame is genuinely unavailable
 * for this file (outside a repo, path never tracked, or `git`
 * itself isn't on PATH). The UI treats "no blame" as "no widget",
 * which is the right outcome for all three.
 */
export type GitFileBlame = { 
/**
 * Workspace-relative path the blame was computed against.
 * Echoed back so a late-arriving response can be ignored when
 * the active buffer has moved on.
 */
path: string, 
/**
 * Canonical HTTPS base URL of the repo's primary remote, when
 * it's a host we know how to build PR / issue links for
 * (currently `github.com` only). Trailing slash omitted — the
 * frontend appends `/pull/<N>` or similar. Empty string when
 * the remote isn't set, isn't a recognised host, or points at a
 * protocol we don't normalise (e.g. `file://`, raw SSH to an
 * arbitrary server).
 *
 * Scoped per-file rather than per-workspace so a
 * multi-folder workspace where each folder has a different
 * remote keeps the link target correct without the frontend
 * having to cross-reference folder bindings.
 */
remoteUrl: string, lines: Array<GitLineBlame>, };
