export type ScaffoldOptions = { /** The project's name, and the `name` its `package.json` carries. */ readonly name: string; /** Where it is written. Absolute. */ readonly directory: string; /** The `DATABASE_URL` to write into `.env`. Nothing is written without one. */ readonly database?: string; /** SPEC.md §78: all three default to yes. */ readonly studio?: boolean; readonly pages?: boolean; readonly mcp?: boolean; /** A starter's name, or an absolute path to one. Defaults to `bare`. */ readonly template?: string; /** Write into a directory that is not empty, overwriting what collides. */ readonly force?: boolean; }; export type ScaffoldResult = { readonly directory: string; /** Project-relative, `/`-separated and sorted — a listing, not a set of paths. */ readonly files: readonly string[]; }; /** * Why a name cannot be one, or nothing. * * A project's name is its `package.json` name, so the rules are npm's rather than * this scaffolder's. They are enforced rather than worked around: silently turning * `My Project` into `my-project` would leave a developer with a directory and a * package that disagree, and the suggestion in the message costs them one keystroke * more than the guess would have. */ export declare const projectNameError: (name: string) => string | undefined; /** * Writes a project. * * The name is trimmed before it is checked, because a name pasted into a terminal * often arrives with a space on the end and refusing that would be pedantry rather * than a rule. Everything else about it is npm's rule, unbent. */ export declare const scaffold: (options: ScaffoldOptions) => Promise; /** `relative()`, unless that is the longer way to say it. What `cd` wants. */ export declare const shortestPath: (from: string, directory: string) => string; //# sourceMappingURL=scaffold.d.ts.map