import { StatusResult, DiffResult } from 'simple-git'; export interface GitStatus { isClean: boolean; current: string | null; tracking: string | null; staged: string[]; modified: string[]; deleted: string[]; untracked: string[]; ahead: number; behind: number; } export interface BranchInfo { name: string; current: boolean; commit: string; label: string; } export interface CommitInfo { hash: string; date: string; message: string; author: string; } declare class GitService { private git; private statusCache; constructor(basePath?: string); setWorkingDirectory(path: string): void; invalidateCache(): void; isGitRepo(): Promise; getStatus(useCache?: boolean): Promise; getRawStatus(): Promise; getCurrentBranch(): Promise; isDetachedHead(): Promise; getBranches(): Promise; getLocalBranches(): Promise; getStagedFiles(): Promise; getUnstagedFiles(): Promise; hasUncommittedChanges(): Promise; getDiff(staged?: boolean): Promise; getDiffSummary(staged?: boolean): Promise; add(files: string | string[]): Promise; addAll(): Promise; commit(message: string): Promise; commitNoEdit(): Promise; push(remote?: string, branch?: string, force?: boolean, setUpstream?: boolean): Promise; /** * Check if there are local commits that haven't been pushed * Works even when there's no upstream branch set */ hasUnpushedCommits(): Promise; /** * Get the number of unpushed commits * Returns -1 if no upstream is set (meaning all commits are unpushed) */ getUnpushedCommitCount(): Promise; pull(remote?: string, branch?: string, options?: Record): Promise; checkout(branch: string): Promise; createBranch(name: string, checkout?: boolean): Promise; deleteBranch(name: string, force?: boolean): Promise; merge(branch: string): Promise; hasConflicts(): Promise; getConflictedFiles(): Promise; getLog(maxCount?: number): Promise; getRemotes(): Promise; hasRemote(): Promise; getRemoteUrl(name?: string): Promise; removeRemote(name: string): Promise; fetch(remote?: string): Promise; reset(mode?: 'soft' | 'mixed' | 'hard', ref?: string): Promise; stash(message?: string): Promise; stashPop(): Promise; stashApply(index?: number): Promise; stashDrop(index?: number): Promise; getStashList(): Promise; getFileContent(file: string, ref?: string): Promise; init(): Promise; addRemote(name: string, url: string): Promise; isMergeInProgress(): Promise; isRebaseInProgress(): Promise; isCherryPickInProgress(): Promise; isBisectInProgress(): Promise; abortMerge(): Promise; abortRebase(): Promise; hasUpstream(branch?: string): Promise; clone(repoUrl: string, directory?: string): Promise; } export declare const gitService: GitService; export default gitService; //# sourceMappingURL=git-service.d.ts.map