import { ProjectionCompiled } from "../projection-compiled"; import { UnionType } from "../../core/union-type"; import { ProjectionBuilder } from "../projection-builder"; import { ExpressionOrColumn, ParamType, TypeOrderBy } from "../../core/utils"; import { WhereBuilder } from "../where-builder"; import { OrderBy } from "../../core/enums/order-by"; import { WhereCompiled } from "../where-compiled"; import { QueryCompiled } from "../../core/query-compiled"; import { LambdaExpression } from "lambda-expression"; import { JoinQueryBuilderContract } from "./join-query-builder-contract"; import { QueryBuilderBaseContract } from "./query-builder-base-contract"; import { HavingBuilder } from "../having-builder"; import { ProjectionsHelper } from "../../core/projections-helper"; import { BuilderCompiled } from "../../core/builder-compiled"; import { ColumnRef } from "../../core/column-ref"; import { MapperTable } from "../../mapper-table"; import { SqlCompilable } from "../sql-compilable"; import { SqlBaseBuilder } from "../sql-base-builder"; import { MetadataTable } from "../../metadata-table"; import { QueryBuilder } from "./query-builder"; import { ProjectionModel } from "../projection-model"; export declare abstract class QueryBuilderBase> extends SqlBaseBuilder implements QueryBuilderBaseContract> { protected _getMapper?: (tKey: (new () => any) | string) => MetadataTable; get alias(): string; get tablename(): string; protected _groupBy: string; protected _limit: BuilderCompiled; protected _orderBy: string; protected _having: WhereCompiled; protected _projections: ProjectionModel[]; protected _joinParams: ParamType[]; protected _ignoreQueryFilter: boolean; private readonly GROUP_BY; private readonly HAVING; private readonly ORDER_BY; private readonly LIMIT; private readonly OFFSET; private _paramsQueryFilter; private _joinsQuery; private _unionsQuery; private _fromParams; constructor(queryT: (new () => T) | QueryBuilder, mapperTable: MapperTable, alias?: string, _getMapper?: (tKey: (new () => any) | string) => MetadataTable); getAlias(tKey: (new () => any) | string): string; clone(): TQuery; ref(expression: ExpressionOrColumn, alias?: string): ColumnRef; hasAlias(alias: string): boolean; from(query: QueryCompiled[] | SqlCompilable): TQuery; unionAll(query: QueryCompiled[] | SqlCompilable): TQuery; union(query: QueryCompiled[] | SqlCompilable, type?: UnionType): TQuery; createWhere(): WhereBuilder; where(whereCallback: (where: WhereBuilder) => void): TQuery; /** * Where with expression Lambda * #Experimental * @param {LambdaExpression} expression * @returns {TQuery} * @memberof QueryBuilderBase */ whereExp(expression: LambdaExpression): TQuery; projection(projectionCallback: (projection: ProjectionBuilder) => void): TQuery; select(...expressions: Array>): TQuery; orderBy(expression: TypeOrderBy, order?: OrderBy): TQuery; asc(expression: TypeOrderBy): TQuery; desc(expression: TypeOrderBy): TQuery; groupBy(expression: ExpressionOrColumn, havingCallback?: (having: HavingBuilder, projection: ProjectionsHelper) => void): TQuery; limit(limit: number, offset?: number): TQuery; /** * Find projection by alias and result index (base 1...N+1) * @param projectionAlias alias to find the projection * @returns index (base 1...N+1) */ getIndexProjection(projectionAlias: ExpressionOrColumn): number; ignoreQueryFilters(): TQuery; enableQueryFilters(): TQuery; setParamsQueryFilter(params: { [s: string]: ParamType; }): TQuery; compileTable(): string; compile(): QueryCompiled; protected whereCompile(baseWhereCompiled: WhereCompiled): WhereCompiled; protected createProjectionBuilder(addAliasTableToAlias?: boolean, addAliasDefault?: boolean): ProjectionBuilder; protected addJoin>(joinQuery: JoinQueryBuilderContract): void; protected setDefaultColumns(): void; protected getColumnsCompiled(): ProjectionCompiled; protected compileJoin(): QueryCompiled; protected buildBase(): QueryCompiled; protected compileGroupBy(groupBy: string, addCommand?: boolean): void; protected compileHaving(having: WhereCompiled, addCommand?: boolean): void; protected compileOrderBy(orderBy: string, addCommand?: boolean): void; protected abstract _getInstance(): TQuery; private buildUnions; private buildProjections; private compileTableJoins; }