import { type OperationIr } from "../ir/operations.js"; import { type ComponentTemplateRecipe } from "../schema/recipe.js"; import { type CompileContext } from "./shared.js"; /** * Compile a `ComponentTemplateRecipe` to an Operation IR. * * Pure: same recipe + same context → identical IR forever. The Authoring * API server-assigns itemIds on `createItem`, so the IR carries Sitecore * `path` fields for lookups + recipe-internal `refKey` GUIDs (uuidv5) * which the executor uses as the key into a per-run captured-itemId map. * * Layout (per `plans/recipe-site-folder-layout.md`): * * With `section: "ui"`: * - Section folder (CreateOnly) at `/ui` * - Template at `/ui/` * - When recipe declares `children:`, a Component Folder template at * `/ui/Component Folders/ Folder` * - Inline `params:` (or `parameters: { handle }`) → Parameters * template at `/ui/Presentation Parameters/` * - Renderings-side section folder (CreateOnly) at * `/ui`, then rendering at * `/ui/` * * Without `section` (legacy back-compat): * - Flat layout — template at `/`, * parameters at `/ Parameters`, * rendering at `/`. No section folder * creation, no Component Folder generation. */ export declare function compileComponentTemplateRecipe(input: ComponentTemplateRecipe, context: CompileContext, emittedFolders?: Set): OperationIr;