export type GitRemote = { name: string; url: string; }; export type GitBranch = { name: string; current: boolean; ref?: string; }; export type GitTag = { name: string; ref: string; }; export type GitCommit = { sha: string; subject: string; authorName: string; authorEmail: string; timestamp: number; }; export type GitWorkingTreeState = { clean: boolean; modified: number; added: number; deleted: number; untracked: number; }; export type GitRepositoryState = { gitDir: string; headRef?: string; headSha?: string; isBare: boolean; isShallow: boolean; formatVersion?: number; }; export interface GitProvider { /** Return true if the given path is inside a Git working tree. */ isGitRepository(path: string): Promise; /** Read repository identity and format metadata. */ getRepositoryState(path: string): Promise; /** List configured remotes. */ getRemotes(path: string): Promise; /** List local branches. */ getBranches(path: string): Promise; /** List tags. */ getTags(path: string): Promise; /** Read recent commits from the current branch. */ getRecentCommits(path: string, limit: number): Promise; /** Report working tree cleanliness. */ getWorkingTreeState(path: string): Promise; } /** * In-memory GitProvider for testing. */ export declare function createInMemoryGitProvider(repositoryState?: Record, remotes?: Record, branches?: Record, tags?: Record, commits?: Record, workingTreeStates?: Record): GitProvider;