import { spawn } from "node:child_process"; import type { ScaffoldInputs } from "./index.js"; export interface WithInitOptions { stdout?: NodeJS.WritableStream; stderr?: NodeJS.WritableStream; /** Override the spawner (tests). Default `node:child_process.spawn`. */ spawnImpl?: typeof spawn; } export declare class WithInitError extends Error { constructor(message: string); } /** * Build the repo's GitHub `--description` (the "About" blurb). Prefers the * brief's Purpose section when scaffolding from a brief, else the project * description. Collapses whitespace/newlines to a single line and caps the * length so a multi-paragraph Purpose doesn't become an unwieldy blurb. * Returns `null` when there's nothing meaningful to set. */ export declare function repoDescription(inputs: ScaffoldInputs): string | null; /** * Build the repo's GitHub topics: the project type plus the brand preset * (skipping `custom`, which isn't a meaningful public topic). Lowercased, * de-duplicated, and order-stable. Topic strings from the enums are already * GitHub-legal (lowercase, hyphenated). */ export declare function repoTopics(inputs: ScaffoldInputs): string[]; /** * Runs the post-scaffold git + gh chain that creates the private GitHub repo. * THROWS {@link WithInitError} on a hard failure; the caller decides whether to * warn-and-proceed (it does — see src/cli.ts). */ export declare function runWithInit(inputs: ScaffoldInputs, targetPath: string, opts?: WithInitOptions): Promise;