import type { SiteNode } from "../types"; import type { AuthoringContext, AuthoringRole } from "./authoringContract"; import { type ComponentSpec } from "./componentSchema"; export declare const AUTHORING_RECIPE_CONTRACT_VERSION = 1; export declare const AUTHORING_CONTENT_FIELD_TYPES: readonly ["text", "url", "image"]; export type AuthoringContentFieldType = (typeof AUTHORING_CONTENT_FIELD_TYPES)[number]; export interface AuthoringRecipeContentField { key: string; label: string; type: AuthoringContentFieldType; required?: boolean; defaultValue?: string; } export interface AuthoringRecipe { id: string; label: string; description: string; roles: AuthoringRole[]; requiredContexts?: AuthoringContext[]; /** Composition and adaptation instructions supplied when this recipe is retrieved. */ guidance?: string[]; performanceBudget: number; contentFields: AuthoringRecipeContentField[]; tree: SiteNode; } export interface AuthoringRecipeArtifact { recipeContractVersion: number; recipes: AuthoringRecipe[]; } export interface AuthoringRecipeIssue { path: string; message: string; } export declare const authoringRecipes: AuthoringRecipe[]; export declare function validateAuthoringRecipes(recipes?: readonly AuthoringRecipe[], schema?: Record): AuthoringRecipeIssue[]; //# sourceMappingURL=authoringRecipes.d.ts.map