import { BinaryOperationNode } from '../operation-node/binary-operation-node.js'; import { OperationNodeSource } from '../operation-node/operation-node-source.js'; import { ComparisonOperator, BinaryOperator, Operator } from '../operation-node/operator-node.js'; import { ExtractTypeFromReferenceExpression, ExtractTypeFromStringReference, ReferenceExpression, StringReference } from './reference-parser.js'; import { ValueExpression, ValueExpressionOrList } from './value-parser.js'; import { OperationNode } from '../operation-node/operation-node.js'; import { Expression } from '../expression/expression.js'; import { SelectType } from '../util/column-type.js'; export type OperandValueExpression = ValueExpression>; export type OperandValueExpressionOrList = ValueExpressionOrList | null>; export type OperatorExpression = Operator | Expression; export type BinaryOperatorExpression = BinaryOperator | Expression; export type ComparisonOperatorExpression = ComparisonOperator | Expression; export type FilterObject = { [R in StringReference]?: ValueExpressionOrList>>; }; export declare function parseValueBinaryOperationOrExpression(args: any[]): OperationNode; export declare function parseValueBinaryOperation(left: ReferenceExpression, operator: BinaryOperatorExpression, right: OperandValueExpressionOrList): BinaryOperationNode; export declare function parseReferentialBinaryOperation(left: ReferenceExpression, operator: BinaryOperatorExpression, right: OperandValueExpressionOrList): BinaryOperationNode; export declare function parseFilterObject(obj: Readonly>, combinator: 'and' | 'or'): OperationNode; export declare function parseFilterList(list: ReadonlyArray, combinator: 'and' | 'or', withParens?: boolean): OperationNode;