import type { Cookbook, CookbookInput } from "./cookbook.js"; /** * The headings the two halves of `asked` are printed under. Exported so the * install checklist and `cookbook view` label the same split the same way. */ export declare const LOOK_UP_HEADING = "Look up \u2014 do not type these in cold"; export declare const SUPPLY_HEADING = "You supply \u2014 once those lookups are in"; /** A cookbook's declared inputs, split by who answers them. */ export type AskedInputs = { /** Answered from the workspace: authenticated connectors, schemas, counts. */ lookUp: CookbookInput[]; /** Genuinely the operator's: a judgement, an approval, a spend. */ supply: CookbookInput[]; }; /** * Split `asked` into what to look up and what to ask for. * * This is the cookbooks' own rule — derive before you ask — and it is worth * making the CLI keep it, because getting it wrong is expensive in both * directions. A lookup printed as a question invites someone to type a CRM's * property names in from memory, which is exactly the failure the cookbooks * are written to prevent; a question printed as a lookup never gets asked, and * the run proceeds on a default nobody approved. */ export declare function splitAskedInputs(asked: readonly CookbookInput[]): AskedInputs; /** * The checklist to print once a cookbook's files have landed: what to read, * what to look up, what to answer, and only then the commands. * * `files` is every file the cookbook occupies in the project, so the * directories named are the ones that exist — a cookbook shipping no `infra/` * or `scripts/` lands wholly under the skills directories. * * `paint` dims the explanatory lines. It is a parameter rather than an import * because the callers write to three different places: `add` to stderr, * `cookbook view` to stdout, and `init` into a plain string it returns. */ export declare function cookbookSetupSteps(payload: { cookbook: Cookbook; files: readonly string[]; paint?: (text: string) => string; }): string[]; /** Where an install put things, as output should name them. */ export type InstalledDirectories = { /** `infra/`, `scripts/`, `.claude/skills/` — the copies worth reading. */ dirs: string[]; /** The same skill again under another agent's directory convention. */ mirrors: string[]; }; /** * The directories `files` sit in, deduplicated and split from their mirrors. * Listing a mirror alongside the original reads as more material to work * through, when the point of the mirror is that there is one procedure. */ export declare function installedDirectories(files: readonly string[]): InstalledDirectories; /** * An input's name and, where the catalog carried one, the file it lives in. * * The generator writes both into `input` as one markdown fragment that has * lost its opening backtick — ``icp` (`infra/context/icp.md`)``. Printed raw * that is stray punctuation wrapped around the two facts the reader came for. */ export declare function askedName(input: CookbookInput): { name: string; path?: string; }; /** * The line printed under an input's name: how to answer it, falling back to * why it matters. * * `how` is the instruction ("Join live LinkedIn paths to live CRM properties"), * which is what a checklist is for; `why` is the argument for it, and * `cookbook view` already prints that in full. Some rows spend their whole * `how` restating which half of the split they are in, which the heading * directly above them has already said. */ export declare function askedDetail(input: CookbookInput): string | undefined; //# sourceMappingURL=cookbookSetup.d.ts.map