/** * GUCDI — deterministic LCR app generator (pure). The final scaffolding pass of * the whole-app `vibe`: turns the LCR plan (routes + personas) into a RUNNABLE, * NAVIGABLE Vite/React app — the scaffold (package.json, vite, tailwind v4) + the * router (every declared surface a route, no auth walls) + a stub page per route * (sets the `@story` marker) — with the **slowcook review-overlay** mounted to * provide all REVIEW affordances (persona switch + EPSS epic·persona·scenario·state * router + comment capture). Personas live in the overlay's EPSS manifest, NOT in * the mock's chrome. No LLM: the skeleton is deterministic; the LLM `vibe surfaces` * pass later fills each stub's body. See docs/plans/vibe-whole-mock-lcr.md. * The EPSS manifest model (epic·persona·scenario·state, Foundations home for the * universal UI-Stack states) is defined in docs/EPSS.md — read it before changing * `epssManifestJson`. */ import type { LcrPlan } from "./lcr-plan.js"; export interface GenFile { /** path relative to the mock root (e.g. "src/App.tsx"). */ path: string; content: string; } /** route → React component name: "/admin/workers" → "AdminWorkersPage", "/" → "HomePage". */ export declare function routeToName(route: string): string; /** The EPSS testing-surfaces.json manifest. Each acceptance_scenario is a test * CASE: it starts at `route` in a precondition State (the Gherkin "Given") and * walks a Scenario (the "When") to an expected outcome (the "Then"). Grouped * epic ▸ context(persona) ▸ scenario(When) ▸ state(Given). The route is just * where the test starts — NOT the scenario's identity (one route can back many * scenarios). The universal UI-Stack states (loading/empty/error) are NOT * repeated per page; they get ONE "Foundations" home that demos the shared * primitive. The overlay renders this as the EPSS router and writes the * selection to localStorage for the data adaptor. URL = base + route, so base is * "" (scenarios carry absolute routes). */ export declare function epssManifestJson(plan: LcrPlan, projectName: string): string; /** The `.brewing/mock.yaml` content — declares the LCR shape so run-mock + the * overlay behave whole-app (device-flow auth, overlay on every route). */ export declare function mockYaml(): string; /** Build the full deterministic LCR app file set from the plan. */ export declare function generateLcrApp(plan: LcrPlan, opts: { projectName: string; owner?: string; repo?: string; }): GenFile[]; //# sourceMappingURL=app-gen.d.ts.map