import { type ZodSafeParseResult } from "zod"; import type { MulmoScript } from "../types/type.js"; export type PartialMulmoScript = Record; /** * Add $mulmocast version if not present */ export declare const addMulmocastVersion: (data: PartialMulmoScript) => PartialMulmoScript; /** * Merge base with override (override takes precedence) */ export declare const mergeScripts: (base: PartialMulmoScript, override: PartialMulmoScript) => PartialMulmoScript; /** * Get style by name or file path */ export declare const getStyle: (style: string) => PartialMulmoScript | undefined; export type CompleteScriptResult = ZodSafeParseResult; type CompleteScriptOptions = { templateName?: string; styleName?: string; baseDirPath?: string; }; /** * Complete a partial MulmoScript with schema defaults, optional style or template * * @param data - Partial MulmoScript to complete (highest precedence) * @param options - Optional template or style to use as base * @param options.templateName - Template name (e.g., "children_book"). Mutually exclusive with styleName. * @param options.styleName - Style name or file path. Mutually exclusive with templateName. * @returns Zod safe parse result with completed MulmoScript or validation errors * @throws Error if both templateName and styleName are specified * * @example * // With template * completeScript(data, { templateName: "children_book" }) * * @example * // With style * completeScript(data, { styleName: "ghibli_comic" }) * * @example * // With style from file * completeScript(data, { styleName: "./my-style.json" }) */ export declare const completeScript: (data: PartialMulmoScript, options?: CompleteScriptOptions) => CompleteScriptResult; /** * Check if template exists */ export declare const templateExists: (templateName: string) => boolean; /** * Check if style exists (by name or file path) */ export declare const styleExists: (style: string) => boolean; export {};