/** * The picker's pure half: what the list looks like, what is selected by * default, and how an answer is read. * * Separated from the command so the selection rules are unit-testable without a * TTY, and so the non-TTY paths (`--yes`, a piped stdin) run exactly the same * defaulting the interactive path does rather than a second copy of it. * * **A user never types a path** — that is the deliverable, not a nicety * (`auden-import-plan.md` → *Approach*). Everything here is answered with * Enter or a couple of digits. */ import { type ImportCandidate } from './import-candidates.js'; export type Selection = { kind: 'selected'; indexes: number[]; } | { kind: 'cancelled'; } | { kind: 'invalid'; message: string; }; /** * Render every candidate, managed ones included. * * Adoptable rows are numbered — the numbers are what the answer refers to — and * managed rows carry a dash instead, so the list reads as "here is everything * Auden can see" rather than "here is a list with holes in it". */ export declare function formatCandidateLines(candidates: ReadonlyArray): string[]; /** * Indexes into the *adoptable* subset that a bare Enter accepts. * * Every candidate slice 1 can see came out of guide discovery, so all of them * are recognised guidance locations and select-all is the right default — it * matches what `auden init`'s adoption step offers, which is the behaviour this * verb makes re-runnable (`auden-import-plan.md` → *Open questions*). Ordinary * documents arrive with named paths in slice 2 and default the other way; the * split lives here rather than at the call site so both callers cannot disagree. */ export declare function defaultSelection(adoptableCount: number): number[]; /** * Read an answer into indexes over the adoptable subset. * * Accepts an empty line (the default), `all`, `none`/`n`/`q`, and any * comma/space-separated mix of numbers and `a-b` ranges. One-based on the way * in because that is what the list shows; zero-based on the way out because * that is what indexes an array. */ export declare function parseSelection(input: string, adoptableCount: number): Selection; /** The one-line question, naming what Enter does so nobody has to guess. */ export declare function selectionPrompt(adoptableCount: number): string; //# sourceMappingURL=import-picker.d.ts.map