import type { EnvironmentRecipeRoots } from "../../config/types.js"; /** * Derive the full set of recipe parent paths for an SXA Headless site from * just its `site` (site name) and `siteCollection` (parent tenant). * * Recipe authoring normally requires ~13 `recipeRoots` paths to be spelled * out by hand in `sitecoreai.cli.json`. They are, however, a pure function of * two values plus the fixed SXA Headless tree layout — every site-related root * is scoped under `/` so two sites under one project * never collide on shared template / rendering names: * * templates / components → /sitecore/templates/Project///Components * content models → /sitecore/templates/Project///Content Models * page templates → /sitecore/templates/Project//Pages (COLLECTION-level) * renderings → /sitecore/layout/Renderings/Project///Components * partial designs → /sitecore/content///Presentation/Partial Designs * page designs → /sitecore/content///Presentation/Page Designs * content items → /sitecore/content///Data * headless variants → /sitecore/content///Presentation/Headless Variants * available renderings → /sitecore/content///Presentation/Available Renderings * presentation styles → /sitecore/content///Presentation/Styles * enumerations → /sitecore/content///Presentation/Enumerations * placeholder settings → per-site `/Presentation/Placeholder Settings` * + project-level `/sitecore/layout/Placeholder Settings/Project//` * * This is a faithful port of the orchestrator's proven `buildRecipeRoots` * (`packages/scai-shared/src/execution/ephemeral-cli-config.ts`) — the * derivation a hosted install has used all along. Lifting it here lets a * standalone repo set a single `site` value instead of authoring every path, * while producing byte-identical results. * * Derivation is the *fallback*: explicit `recipeRoots` / `*Root` config and * CLI-flag overrides still win at resolution time (see * `plans/recipe-roots-derivation.md`). `pages` is intentionally not * derived — it is set explicitly when a tenant needs it, matching the * orchestrator's behaviour. `pageTemplates` derives to * `/Pages` (its own bucket, sibling of Components / * Content Models) — earlier it wasn't derived and fell back to the * Components bucket, which mixed page templates in with component * datasource templates. */ export declare const deriveRecipeRoots: (site: string, siteCollection: string) => EnvironmentRecipeRoots;