import { ArgumentsValue } from './args'; import { Output } from './output'; import { Value } from './value'; export declare abstract class ExpressionValue extends Value { } export declare class NewExpressionValue extends ExpressionValue { callee: Value; args: ArgumentsValue; constructor(callee: Value, args: ArgumentsValue); render(output: Output): void; } export declare class CallExpressionValue extends ExpressionValue { callee: Value; args: ArgumentsValue; constructor(callee: Value, args: ArgumentsValue); render(output: Output): void; } export declare class MemberExpressionValue extends ExpressionValue { object: Value; property: Value; constructor(object: Value, property: Value); render(output: Output): void; } type BinaryOperator = '+' | '-' | '&&' | '||'; export declare class BinaryExpressionValue extends ExpressionValue { left: Value; right: Value; op: BinaryOperator; constructor(left: Value, right: Value, op: BinaryOperator); render(output: Output): void; } type UnaryOperator = '!'; export declare class UnaryExpressionValue extends ExpressionValue { value: Value; op: UnaryOperator; constructor(value: Value, op: UnaryOperator); render(output: Output): void; } export {};