export type ScaffoldFeatureEntry = { readonly name: string; readonly importPath: string; readonly exportName: string; readonly callExpression: string; /** Runtime args for factory-style exports that need config the codegen text can't parse back out (e.g. `{ scopes: {} }`). Omit for zero-arg factories and object-style exports. */ readonly callArgs?: readonly unknown[]; }; export type ScaffoldTestSetup = { readonly files: Readonly>; readonly scripts: Readonly>; readonly devDependencies: Readonly>; readonly rulesMarkdown: string; }; export type ScaffoldTestSetupFactory = (input: { readonly appName: string; readonly frameworkVersion: string; }) => ScaffoldTestSetup; export type ScaffoldAppOptions = { /** kebab-case app name (e.g. "my-shop"). Becomes package-name + folder. */ readonly name: string; /** Absolute or cwd-relative target dir. Default: /. */ readonly destination?: string; /** Base dir a relative `destination` (or the name-default) resolves * against. Defaults to process.cwd(). Callers with their own cwd-notion * (the CLI's ctx.cwd) MUST pass it so the scaffold lands where the * command's output claims it does. */ readonly cwd?: string; /** npm-version-pin for @cosmicdrift/* deps. Default "*" for latest. */ readonly frameworkVersion?: string; /** Bundled-features to mount in run-config.ts. Default: secrets + auth-foundation + sessions * (the historical foundation). create-kumiko-app passes the picker output * here so the generated APP_FEATURES reflects the user's selection. */ readonly features?: ReadonlyArray; /** Test wiring (bunfigs, scripts, example tests, e2e) — `renderTestSetup` from * @cosmicdrift/kumiko-testing/scaffold. Without it the app gets the legacy * bunfig pair and no example tests. */ readonly testSetup?: ScaffoldTestSetupFactory; }; export type ScaffoldAppResult = { readonly destination: string; readonly files: readonly string[]; readonly appName: string; }; export declare function scaffoldApp(options: ScaffoldAppOptions): Promise;