import type { DevToolsSys } from "../../types"; import type { Credentials } from "../credentials"; import type { GitConfigs, GitDiagnostics } from "#ai-utils"; export interface RunCommandOptions { cwd?: string; sys: DevToolsSys; timeout?: number; skipLogging?: boolean; stdin?: string; retry?: number; } type FetchGitConfigsResult = { success: true; gitConfigs: GitConfigs; } | { success: false; error: Error; gitDiagnostics?: GitDiagnostics; }; export declare function runCommand(cmd: string, args: string[], opts: RunCommandOptions): Promise; export declare function getMonotonicId(): string; /** * Returns true when the working tree has no uncommitted changes. * Uses `git status --porcelain` which is more reliable than parsing stderr. */ export declare function hasCleanWorkTree(cwd: string, sys: DevToolsSys): Promise; /** Extract a human-readable error string from a failed git command. */ export declare function gitError(err: unknown): string; export declare const isGitRepoCorrupted: (stdout: string, stderr: string) => boolean; export declare const isGitRepoNotFound: (stdout: string, stderr: string) => boolean; export declare function fetchGitConfigs(credentials: Credentials, projectId: string, debug: boolean): Promise; export {};