export interface RunGhResult { stdout: string; stderr: string; code: number; } export type RunGh = (args: string[], opts?: { cwd?: string; }) => Promise; export interface ScaffoldGitHubArgs { /** Local path to the directory that will become the GitHub repo root. */ pluginDir: string; /** Repo name (without owner). The owner is whatever `gh` is currently authenticated as. */ repoName: string; /** Optional repo description (passed to `gh repo create -d`). */ description?: string; /** Whether the new repo should be public. Defaults to true. */ public?: boolean; /** Injectable `gh` adapter — defaults to spawning the local `gh` binary. */ runGh?: RunGh; } export interface ScaffoldGitHubResult { skipped: boolean; /** When skipped, a short human-readable reason. */ reason?: string; /** Repo URL when the create step succeeded. */ repoUrl?: string; /** Argv recorded for each `gh` invocation — useful for debugging and tests. */ invocations: string[][]; } /** * Run `gh repo create --public/--private --source --push`. * * The `--source --push` form initializes a git repo if needed and pushes * the initial commit in one step. When `gh` is missing or the create step * fails, the function resolves with `skipped: true` and a clear reason — * never throws. */ export declare function scaffoldGitHub(args: ScaffoldGitHubArgs): Promise;