import { SubmoduleInfo } from '../types.js';

interface GitFileStatus {
    path: string;
    status: 'added' | 'modified' | 'removed' | 'renamed' | 'unchanged';
}
interface GitBlobHash {
    path: string;
    hash: string;
}
declare function getGitBlobHashes(repoRoot: string): Map<string, string>;
declare function getChangedFiles(repoRoot: string, since?: string): GitFileStatus[];
declare function getCurrentCommitSha(repoRoot: string): string | null;
declare function getPreviousCommitSha(repoRoot: string): string | null;
declare function isGitRepo(dir: string): boolean;
declare function getRepoName(repoRoot: string): string;

declare function discoverSubmodules(repoRoot: string): SubmoduleInfo[];

export { type GitBlobHash, type GitFileStatus, discoverSubmodules, getChangedFiles, getCurrentCommitSha, getGitBlobHashes, getPreviousCommitSha, getRepoName, isGitRepo };
