import { Expression } from './Expression';
export default class Interpreter<M, S> implements Expression.Visitor<any> {
    private model;
    private state;
    private source;
    private functions;
    interpret(ast: Expression.AST, model: M, state: S, functions: {
        [name: string]: Function;
    }): any;
    visitBinaryExpression(expression: Expression.Binary): any;
    visitConstraintExpression(expression: Expression.Constraint): any;
    visitFunctionExpression(expression: Expression.Function): any;
    visitGroupingExpression(expression: Expression.Grouping): any;
    visitLiteralExpression(expression: Expression.Literal): any;
    visitLogicalExpression(expression: Expression.Logical): any;
    visitUnaryExpression(expression: Expression.Unary): any;
    visitVariableExpression(expression: Expression.Variable): any;
    private reportError;
}
