/** * template.ts — template-rendering.md の参照実装(doc-grade, COMMON)。 * * renderTemplate(template, params): `{param}` プレースホルダを束縛値で置換し文字列を返す。 * 対象は **`{param}`(ドットなし name)のみ**。`{result.*}` / `{item.*}` は別層(runPlan / * Map 展開)が解決するため、core の renderTemplate は**それらを含む template を範囲外 Failure** とする * (template-rendering.md §3.1-4 / runtime-boundary.md §4.1)。 * * 規範ポイント(template-rendering.md §2/§3/§5): * - プレースホルダ = /\{([^{}]+)\}/(空 name 不可・ブレース内不可)。エスケープ非対応。 * - 単一パス・左から右・重ならない置換。置換結果中の {...} は再処理しない。 * - strict missing-key: 未束縛 param は Failure(空文字化しない)。 * - null param は Failure(present = key in params && value !== null)。 * - stringify は Python str(value) を規範: bool → True/False, float → pyFloatRepr。 */ import type { Value } from "./expr-eval.js"; export type TemplateFailureCode = "UNBOUND_PARAM" | "RESULT_SCOPE_IN_CORE" | "INVALID_STRINGIFY"; export declare class TemplateFailure extends Error { code: TemplateFailureCode; constructor(code: TemplateFailureCode, message: string); } /** * renderTemplate — `{param}` 描画(strict)。 * * @param template `{name}` を 0 個以上含む文字列。 * @param params name → 値の束縛。 */ export declare function renderTemplate(template: string, params: Record): string; /** * resolvePartial — explain/dry-run 用(template-rendering.md §3.3)。 * `{param}` を置換し、`{result.*}` はそのまま残し、未束縛 param もエラーにせず残す。 * strict 版とは別 API(conformance は strict 版が主対象だが、partial の分離も規範)。 */ export declare function resolvePartial(template: string, params: Record): string; //# sourceMappingURL=template.d.ts.map