export declare function cloneFromUpstream(url: string, destination: string, { originName, depth }?: { originName: string; depth?: number; }): Promise; export declare class GitRepository { private directory; root: string; constructor(directory: string); getGitRootPath(cwd: string): string; hasUncommittedChanges(): Promise; addFetchRemote(remoteName: string, branch: string): Promise; showStat(): Promise; listBranches(): Promise; getGitFiles(path: string): Promise; reset(ref: string): Promise; mergeUnrelatedHistories(ref: string, message: string): Promise; fetch(remote: string, ref?: string): Promise; checkout(branch: string, opts: { new: boolean; base: string; }): Promise; move(path: string, destination: string): Promise; push(ref: string, remoteName: string): Promise; commit(message: string): Promise; amendCommit(): Promise; deleteGitRemote(name: string): Promise; addGitRemote(name: string, url: string): Promise; hasFilterRepoInstalled(): Promise; filterRepo(source: string, destination: string): Promise; filterBranch(source: string, destination: string, branchName: string): Promise; private execAsync; private quotePath; private quoteArg; } export interface VcsRemoteInfo { domain: string; slug: string; } export declare function parseVcsRemoteUrl(url: string): VcsRemoteInfo | null; export declare function getVcsRemoteInfo(directory?: string): VcsRemoteInfo | null; export declare function commitChanges(commitMessage: string, directory?: string): string | null; export declare function getLatestCommitSha(directory?: string): string | null;