/**
 * ChangedFilesView — Read-only "press D to see diffs" review pane shown
 * on the success outro.
 *
 * Two states:
 *   - list view    — file names with create/modify badges; arrow keys
 *                    move the cursor, Enter opens the diff for the
 *                    selected file
 *   - detail view  — `git diff --no-color HEAD -- <path>` output for one
 *                    file, scrollable line-by-line
 *
 * Esc navigates up: detail → list, list → close (handled by parent).
 *
 * Diffs are produced with `child_process.execFileSync` (NO shell) and
 * truncated at 10k chars to keep the render cheap on huge files. When
 * git is unavailable or the file isn't tracked, we surface a friendly
 * "(no git diff available — file may be new)" placeholder so the user
 * still sees the file existed without a confusing crash.
 *
 * Goal: users gain trust that the wizard did what it claimed without
 * leaving the terminal. Keep it simple — no syntax highlighting, no
 * cross-commit diffs, no editing. Strictly a review surface.
 */
/** Hard cap on diff bytes shown inline. Anything larger is truncated. */
export declare const MAX_DIFF_CHARS = 10000;
export interface ChangedFile {
    path: string;
    /** 'create' for newly written files, 'modify' for edits in place. */
    kind: 'create' | 'modify';
}
interface ChangedFilesViewProps {
    files: ChangedFile[];
    /** Working directory for `git diff` invocations. */
    cwd: string;
    /** Called when the user dismisses the view from the list pane. */
    onClose: () => void;
}
/**
 * Build a sorted, de-duplicated `ChangedFile[]` from the registry's raw
 * `files.written` / `files.modified` arrays. `written` wins on conflict
 * so a path that appears in both lists is shown as a 'create'.
 *
 * Pure for unit testing.
 */
export declare function buildChangedFileList(written: readonly string[], modified: readonly string[]): ChangedFile[];
/**
 * Run `git diff --no-color HEAD -- <path>` synchronously and return the
 * output (or a placeholder string when git fails). Truncates to
 * `MAX_DIFF_CHARS` and appends a footer when truncation happens.
 *
 * Exported for test injection — the component calls this lazily on demand.
 */
export declare function readGitDiff(cwd: string, path: string): string;
export declare const ChangedFilesView: ({ files, cwd, onClose, }: ChangedFilesViewProps) => import("react/jsx-runtime").JSX.Element;
export {};
