/**
* `slowcook init mock --shape vite` — scaffold a Vite/React SPA mock.
*
* Sibling of the Next.js scaffolder (`mock.ts`). The Vite shape is the
* preferred default for new consumers as of sc#82 — solves the focus-
* loss / hydration-mismatch / `'use client'`-everywhere class of bugs
* that the Next.js shape inherits from production.
*
* Layout produced:
*
* mock/
* ├── package.json vite + react + react-router-dom + @slowcook-ai/mock-runtime
* ├── vite.config.ts port 3100; @/ → src/ alias
* ├── tsconfig.json ESNext + bundler resolution + jsx react-jsx
* ├── index.html #root mount
* ├── .gitignore node_modules, dist
* ├── README.md run instructions + how vibe extends the router
* └── src/
* ├── main.tsx StrictMode + BrowserRouter + ScenarioRegistryProvider
* ├── App.tsx — vibe appends new screen routes here
* ├── design-system/ ← `slowcook brand` populates this; seeded minimal here
* │ ├── tokens.ts
* │ ├── css.ts
* │ └── index.ts
* ├── lib/
* │ └── scenario-registry.ts
* └── apps/.gitkeep
*
* Plus, at the repo root:
* .brewing/mock.yaml downstream agents read this to know the shape
*
* The design-system files seeded here are MINIMAL — a neutral palette,
* just enough so `npm run dev` renders something. The full design-system
* (logo, full primitives, ds-* utility CSS) is the output of the
* `slowcook brand` agent (Phase 4 of sc#82); it runs once per project
* and overwrites these seed files.
*/
export interface MockViteInitArgs {
cwd: string;
force: boolean;
dryRun: boolean;
/** Pinned version of @slowcook-ai/mock-runtime to depend on. */
runtimeVersion: string;
}
interface FileToWrite {
path: string;
contents: string;
skipIfExists?: boolean;
}
export declare function planMockViteFiles(args: MockViteInitArgs): FileToWrite[];
export declare function applyMockViteFiles(args: MockViteInitArgs, files: FileToWrite[]): void;
export declare function initMockVite(argv: string[], cliVersion: string): Promise;
export {};
//# sourceMappingURL=mock-vite.d.ts.map