import type { RepoLocation, WorkTree } from './types.ts';
import type { Files } from '../../../../workspace/files.ts';
export declare const UNTRACKED_NO = "no";
export declare const UNTRACKED_NORMAL = "normal";
export declare const UNTRACKED_ALL = "all";
/**
 * Walk a working tree once, for both halves of a status report.
 *
 * One walk answers two questions, which is why they are not asked separately:
 * which tracked files still exist and how big they are, and which untracked ones
 * git would mention. Statting each index path instead would miss every untracked
 * file, and listing untracked files alone would leave the deletions unfound.
 *
 * @param vfs the session's files
 * @param location the discovered repository
 * @param tracked repository-relative paths the index holds
 * @param mode which untracked files to report
 * @param showIgnored whether to report ignored files too
 * @param roots narrow the walk to these repository-relative paths and what
 *   lies under them, for a verb whose pathspecs say what it reads; null walks
 *   it all
 */
export declare function scan(vfs: Files, location: RepoLocation, tracked: ReadonlySet<string>, mode: string, showIgnored?: boolean, roots?: readonly string[] | null): Promise<WorkTree>;
//# sourceMappingURL=worktree.d.ts.map