import type { ASTNode } from "../parser/types.js"; import type { Token } from "../lexer/types.js"; import type { Plugin } from "../plugin.js"; export interface RunOptions { undefinedIdentifierFallback?: unknown; } export declare class Evaluator { private plugins?; constructor(plugins?: Plugin[]); run: (input: string | ASTNode, context?: Record, options?: RunOptions) => unknown; ast: (input: string) => ASTNode; tokens: (input: string, tokensizeWhitespace?: boolean) => Token[]; tokensSafe: (input: string, tokensizeWhitespace?: boolean) => Token[]; } export declare function evaluateNode(node: ASTNode, context: Record, depth: number, plugins?: Plugin[], options?: RunOptions): unknown;