import { IExpressionable } from '../core/IExpressionable'; import { IRule, Rule } from './Rule'; export interface IExpression extends IExpressionable { } export interface IUnaryExpression extends IExpression { value: IRule; } export interface IUnaryExpressionIExpression { value: Rule; } export declare class UnaryExpression implements IUnaryExpression { value: Rule; constructor(expression: IRule); toExpression(): IUnaryExpressionIExpression; } export interface IBinaryExpressionExpression { leftHandValue: IUnaryExpression; rightHandValue: IUnaryExpression; operator: string; } export interface IBinaryExpression extends IExpression { leftHandValue: IUnaryExpression; rightHandValue: IUnaryExpression; operator: string; } export declare class BinaryExpression implements IBinaryExpression { leftHandValue: IUnaryExpression; rightHandValue: IUnaryExpression; operator: string; constructor(expression: IBinaryExpressionExpression); toExpression(): IBinaryExpressionExpression; }