import Expression, { type Context } from './Expression.js'; import { type BinaryOpFunction, type FunctionFunction, type UnaryOpFunction, type Grammar, type TransformFunction } from './grammar.js'; export declare class Jexl { grammar: Grammar; constructor(); addBinaryOp(operator: string, precedence: number, fn: BinaryOpFunction, manualEval?: boolean): void; addFunction(name: string, fn: FunctionFunction): void; addFunctions(map: Record): void; addUnaryOp(operator: string, fn: UnaryOpFunction): void; addTransform(name: string, fn: TransformFunction): void; addTransforms(map: Record): void; compile(expression: string): Expression; createExpression(expression: string): Expression; getFunction(name: string): FunctionFunction; getTransform(name: string): TransformFunction; eval(expression: string, context?: Context): Promise; evalAsString(expression: string, context?: Context): Promise; evalAsNumber(expression: string, context?: Context): Promise; evalAsBoolean(expression: string, context?: Context): Promise; evalAsArray(expression: string, context?: Context): Promise; evalAsEnum(expression: string, context: Context | undefined, allowedValues: readonly T[]): Promise; evalWithDefault(expression: string, context: Context | undefined, defaultValue: T): Promise; expr(strings: string[] | TemplateStringsArray, ...args: unknown[]): Expression; removeOp(operator: string): void; private _addGrammarElement; } //# sourceMappingURL=Jexl.d.ts.map