import { Effect } from 'effect';
export type CelEvaluator = <T>(expression: string, context?: Record<string, unknown>) => Effect.Effect<T, any>;
/** Render a CEL result for inline interpolation — objects as JSON, nullish as ''. */
export declare function stringifyCelResult(value: unknown): string;
/**
 * Replace every `{{ expr }}` in `source` with the stringified result of
 * evaluating `expr` against `$cel`. A blank `{{}}` renders literally, and an
 * expression that throws is left verbatim so the author sees what failed. The
 * evaluation is synchronous (`Effect.runSync`) — interpolation targets simple
 * display strings, not async work.
 */
export declare function interpolateMarkdown(source: string, $cel: CelEvaluator, context?: Record<string, unknown>): string;
