import { OrmGenerics } from "../../types/ormGenerics";
import { DetermineResponseDataType } from "../../types/ormInterfaces";
import { SqlBuilderResult } from "../utils/sqlUtils";
import { AggregateBuilder } from "./AggregateBuilder";
export declare abstract class ConditionBuilder<G extends OrmGenerics> extends AggregateBuilder<G> {
    protected aliasMap: Record<string, string>;
    protected derivedAliases: Set<string>;
    protected initAlias(baseTable: string, joins?: any): void;
    protected registerAlias(alias: string, table: string): void;
    protected assertValidIdentifier(identifier: string, context: string): void;
    protected isColumnRef(ref: string): boolean;
    protected isReferenceExpression(value: string): boolean;
    abstract build(table: string): SqlBuilderResult;
    execute(): Promise<DetermineResponseDataType<G['RequestMethod'], G['RestTableInterface']>>;
    private readonly BOOLEAN_OPERATORS;
    private readonly OPERATOR_ALIASES;
    private readonly BOOLEAN_FUNCTION_KEYS;
    private isTableReference;
    addParam(params: any[] | Record<string, any>, column: string, value: any): string;
    private normalizeOperatorKey;
    private formatOperator;
    private isOperator;
    private ensureWrapped;
    private joinBooleanParts;
    private serializeOperand;
    private isExpressionTuple;
    private isPlainArrayLiteral;
    private isPlainObjectLiteral;
    private resolveColumnDefinition;
    private isJsonColumn;
    protected serializeUpdateValue(value: any, params: any[] | Record<string, any>, contextColumn?: string): string;
    private ensurePlainObject;
    private resolveExistsInnerColumn;
    private normalizeExistsSpec;
    private buildExistsExpression;
    private buildOperatorExpression;
    private buildLegacyColumnCondition;
    private buildBooleanExpression;
    buildBooleanJoinedConditions(set: any, andMode?: boolean, params?: any[] | Record<string, any>): string;
    buildWhereClause(whereArg: any, params: any[] | Record<string, any>): string;
}
