export interface GitFile { path: string; staged: string; unstaged: string; } export interface GitStatus { branch: string; upstream: string | null; ahead: number; behind: number; files: GitFile[]; } export interface GitCommit { hash: string; short: string; subject: string; author: string; email: string; date: string; refs: string; } export declare function getStatus(cwd: string): Promise; export declare function getLog(cwd: string, limit?: number): Promise; export declare function getDiff(cwd: string, filePath: string, staged: boolean): Promise; export declare function getCommitDiff(cwd: string, hash: string, filePath?: string): Promise; export declare function stageFile(cwd: string, filePath: string): Promise; export declare function unstageFile(cwd: string, filePath: string): Promise; export declare function stageAll(cwd: string): Promise; export declare function commit(cwd: string, message: string): Promise; export declare function fetchOrigin(cwd: string): Promise; export declare function getBranches(cwd: string): Promise<{ name: string; current: boolean; remote: boolean; }[]>; export declare function checkoutBranch(cwd: string, branch: string): Promise;