import { ColumnPrimaryContext, ValueExpressionContext, BooleanExpressionValueContext } from "../Context";
import { IToken } from "chevrotain";
declare type BooleanExpressionValueContextWithColumnPrimary = BooleanExpressionValueContext & {
    columnPrimary: Array<{
        name: "columnPrimary";
        children: ColumnPrimaryContext;
    }>;
    BinaryOperator: IToken[];
    valueExpression: Array<{
        name: "valueExpression";
        children: ValueExpressionContext;
    }>;
};
declare type BinaryOperation = BooleanExpressionValueContext & {
    columnPrimary: Array<{
        name: "columnPrimary";
        children: ColumnPrimaryContext;
    }>;
    BinaryOperator: IToken[];
    valueExpression: Array<{
        name: "valueExpression";
        children: ValueExpressionContext;
    }>;
};
declare type MultivalOperation = BooleanExpressionValueContext & {
    MultivalOperator: IToken[];
    LParen: IToken[];
    valueExpression: Array<{
        name: "valueExpression";
        children: ValueExpressionContext;
    }>;
    Comma?: IToken[];
    RParen: IToken[];
};
declare type UnaryOperation = BooleanExpressionValueContext & {
    IsNull?: IToken[];
    IsNotNull?: IToken[];
};
/**
 * Type guard to discriminate if the value have columnPrimary.
 *
 * @param ctx BooleanExpressionValueContext
 */
export declare const hasColumnPrimary: (ctx: BooleanExpressionValueContext) => ctx is BooleanExpressionValueContextWithColumnPrimary;
export declare const isBinaryOperation: (ctx: BooleanExpressionValueContext) => ctx is BinaryOperation;
export declare const isMultivalOperation: (ctx: BooleanExpressionValueContext) => ctx is MultivalOperation;
export declare const isUnaryOperation: (ctx: BooleanExpressionValueContext) => ctx is UnaryOperation;
export {};
//# sourceMappingURL=booleanExpressionValue.d.ts.map