import type { ExtensionContext } from "@earendil-works/pi-coding-agent"; /** * Per-file details for the diff preview feature. */ export interface FileDetail { /** Staged diff content for this file */ diff: string; /** Number of added lines */ additions: number; /** Number of deleted lines */ deletions: number; } /** * Options for customising the file selector. */ export interface FileSelectorOptions { /** * Pre-fetched diff and stat per file. * When provided, Space opens a QuickLook-style diff overlay. * When omitted, the preview feature is disabled. */ fileDetails?: Map; /** * Label for the confirm action shown in the help bar (default: "confirm"). * E.g. "commit", "review". */ confirmLabel?: string; } /** * An item representing a staged file with its selection state. */ export interface FileItem { status: string; path: string; selected: boolean; } /** * Show an interactive file selector for staged files. * * **TUI mode** – presents an interactive multi‑select list where the user can: * - `↑↓` navigate * - `→` select file, `←` deselect * - `Space` open a full-screen diff preview (when `fileDetails` is provided) * - `a`/`A` toggle all * - `Enter` confirm selection * - `Esc` / `Ctrl+C` cancel * * In the diff preview (`Space`): * - `↑↓` scroll, `pgup`/`pgdn` jump, `Space` / `Esc` close * * **Non‑TUI mode** – prints the file list via `ctx.ui.notify` and returns * every path (no interactive selection possible). * * @returns The array of selected file paths, or `null` if cancelled. * Returns `[]` when there are no staged files. */ export declare function selectFiles(ctx: ExtensionContext, nameStatusRaw: string, options?: FileSelectorOptions): Promise; //# sourceMappingURL=file-selector.d.ts.map