import { LambdaExpression } from "lambda-expression"; import { ExpressionOrColumn, ExpressionProjection, ParamType, ValueTypeToParse, ExpressionQuery } from "../core/utils"; import { WhereCompiled } from "./where-compiled"; import { Condition } from "./enums/condition"; import { WhereBaseBuilderContract } from "./where-base-builder-contract"; import { ColumnParams } from "../core/column-params"; import { ColumnRef } from "../core/column-ref"; import { ProjectionsHelper } from "../core/projections-helper"; import { SqlCompilable } from "./sql-compilable"; export declare abstract class WhereBaseBuilder> implements WhereBaseBuilderContract { private _typeT; private _alias; private static readonly AND; private static readonly OR; private _where; private _params; private _pendingConditions; private _pendingAndOr; private readonly _databaseHelper; constructor(_typeT: new () => T, _alias: string); proj(): ProjectionsHelper; concat(...projections: Array>): ProjectionsHelper; coalesce(expression: ExpressionQuery, argumentsCoalesce: any[], alias?: string, args?: any[]): ProjectionsHelper; ref(expression: ExpressionOrColumn, alias?: string): ColumnRef; not(): TWhere; and(): TWhere; or(): TWhere; scope(scopeCallback: (scope: TWhere) => void): TWhere; /** * @deprecated Use `equal` * @param expression * @param column */ equalColumn(expression: TExpression, column: string): TWhere; /** * @deprecated use `equal` */ equalValue(expression: TExpression, value: ValueTypeToParse): TWhere; equal(expression1: TExpression, expression2: TExpression): TWhere; /** * @deprecated use `like` */ likeValue(expression: TExpression, value: string): TWhere; like(expression1: TExpression, expression2: TExpression): TWhere; multiColumnLike(like: string, separator: string, ...columns: TExpression[]): TWhere; contains(expression: TExpression, value: string): TWhere; startsWith(expression: TExpression, value: string): TWhere; endsWith(expression: TExpression, value: string): TWhere; isNull(expression1: TExpression): TWhere; /** * @deprecated use `great` */ greatValue(expression: TExpression, value: ValueTypeToParse): TWhere; great(expression1: TExpression, expression2: TExpression): TWhere; /** * @deprecated use `greatAndEqual` */ greatAndEqualValue(expression: TExpression, value: ValueTypeToParse): TWhere; greatAndEqual(expression1: TExpression, expression2: TExpression): TWhere; /** * @deprecated use `less` */ lessValue(expression: TExpression, value: ValueTypeToParse): TWhere; less(expression1: TExpression, expression2: TExpression): TWhere; /** * @deprecated use `lessAndEqual` */ lessAndEqualValue(expression: TExpression, value: ValueTypeToParse): TWhere; lessAndEqual(expression1: TExpression, expression2: TExpression): TWhere; /** * @deprecated use `between` */ betweenValue(expression: TExpression, value1: ValueTypeToParse, value2: ValueTypeToParse): TWhere; between(expression: TExpression, startExpression: TExpression, endExpression: TExpression): TWhere; /** * @deprecated use `in` */ inValues(expression: TExpression, values: ValueTypeToParse[]): TWhere; in(expression: TExpression, valuesOrQuery: ValueTypeToParse[] | SqlCompilable): TWhere; /** * @deprecated use `in` */ inSelect(expression: TExpression, query: SqlCompilable): TWhere; compile(): WhereCompiled; expression(expression: LambdaExpression): TWhere; _addParams(params: ParamType[]): TWhere; protected abstract _getInstance(): TWhere; protected abstract _create(typeT: new () => T, alias: string): TWhere; protected abstract getColumnParams(expression: TExpression): ColumnParams; protected buildWhereWithExpressionOrValue(condition: Condition[], expression1: TExpression, expression2: TExpression): void; protected buildWhereColumn(condition: Condition[], ...valuesOrColumns: Array): void; protected buildWhereParams(condition: Condition[], columns: string[], params: ValueTypeToParse[]): void; protected buildWhere(conditions: Condition[], columns: string[]): void; protected addParam(param: ValueTypeToParse | ValueTypeToParse[]): void; private processParam; private buildWhereMetadata; private addValueParam; private createWhere; private conditionIsNull; private buildConditions; private builderConditions; private checkWhere; private compileScope; }