import { type GitRunner } from '../project.js';
/** The tree's per-file git state (matches the animate-ui Files `gitStatus`). */
export type FileGitStatus = 'untracked' | 'modified' | 'deleted';
/** One `git status --porcelain` line: the two status columns and the path they are about. */
export interface PorcelainEntry {
    code: string;
    /** Repo-relative; a rename resolves to the new path. */
    path: string;
}
/** Parse `git status --porcelain` output. Shared with the handoff's pending-files read (#1173). */
export declare function parsePorcelain(out: string): PorcelainEntry[];
/**
 * Read each changed file's status from `git status --porcelain`, keyed by repo-relative path.
 * `??` is untracked, a `D` in either column is deleted, anything else (M/A/R/C…) reads as
 * modified. Renames map to the new path. Returns `{}` when the path is not a git repo.
 */
export declare function readFileStatuses(cwd: string, git?: GitRunner): Promise<Record<string, FileGitStatus>>;
//# sourceMappingURL=file-status.d.ts.map