import { CloneOptions, UpdateOptions, RepositoryMetadata } from "./types"; import { RepositoryConfig } from "../config/types"; import { ProgressTracker } from "./ProgressTracker"; export declare class GitOperations { private workingDir; private git; private progressTracker?; constructor(workingDir?: string, progressTracker?: ProgressTracker); clone(config: RepositoryConfig, targetDir: string, options?: CloneOptions, repositoryId?: string): Promise; update(targetDir: string, options?: UpdateOptions, repositoryId?: string, repositoryName?: string): Promise; getRepositoryMetadata(repoDir: string): Promise; isValidRepository(dir: string): Promise; getCurrentCommitHash(dir: string): Promise; getBranches(dir: string): Promise; getTags(dir: string): Promise; private buildCloneOptions; private createAuthenticatedGit; private createCredentialFile; private setupProgressTracking; private ensureDirectoryClean; private forceRemoveDirectory; private removeReadOnlyAttributes; private isRetryableFileSystemError; private getDirectoryStats; private isPrivateRepository; private isSameRepository; cleanup(): void; } //# sourceMappingURL=GitOperations.d.ts.map