import { Environment } from '@marcbachmann/cel-js'; export interface CelFunctionParam { name: string; description?: string; } export interface CelFunctionRegistration { /** cel-js signature string, e.g. 'assetJson(string): dyn' */ signature: string; handler: (...args: never[]) => unknown; description?: string; /** Parameter metadata surfaced by env.getDefinitions() (e.g. for UI palettes). */ params?: CelFunctionParam[]; } export interface EvaluateCelOptions { /** Extra functions registered for this evaluation only. */ functions?: CelFunctionRegistration[]; } /** * A fresh, extensible clone of the shared base CEL environment (trim, slice, * random, randomSample). Consumers may register additional functions on it. * Note: `exists()` is only available through `evaluateCel`, because it must * be bound to the evaluation's variables. */ export declare function createCelEnvironment(): Environment; /** * Canonical CEL evaluation entry point shared by the backend, frontend, * and MCP server. Registers `exists(name)` bound to `variables`, plus any * per-call extra functions, then evaluates. * * If a registered handler is async, cel-js returns a Promise — use * `await evaluateCel>(...)` in that case. * * `options.functions` must not redeclare a base function (trim, slice, * random, randomSample) or `exists` — cel-js throws on overlapping * signatures rather than overriding. */ export declare function evaluateCel(expression: string, variables?: Record, options?: EvaluateCelOptions): T; //# sourceMappingURL=environment.d.ts.map