import type { Provider } from "./provider.js"; import { type RenderFormat } from "./escapers.js"; import { type PayloadField } from "./verify.js"; export interface RenderOptions { /** Inline template text. Mutually exclusive with `ref`. */ template?: string; /** A `group/source` reference resolved via `provider`. */ ref?: string; /** The render payload (a plain object/array graph; pre-format primitives). */ payload: unknown; provider: Provider; /** Output format; drives escaping. Defaults to "text" (raw). */ format?: RenderFormat; /** * Fail-closed guard for dynamic/generated text: when given a payload field * tree, the RESOLVED template is `verify`'d before rendering and a drifted * variant throws — instead of silently rendering nothing. */ verify?: PayloadField[]; /** * Output budget in characters. Rendered length is data-dependent (only knowable * after rendering), so this is a render-time guard: a result longer than * `maxChars` throws. (Token budgets are out of scope — model-specific tokenizer.) */ maxChars?: number; } /** Deterministic, logic-less render: (template + payload + provider) → string. */ export declare function render(o: RenderOptions): string; //# sourceMappingURL=render.d.ts.map