import { ProjectionModel } from "./../crud/projection-model";
import { ExpressionOrColumn, ExpressionProjection, ExpressionQuery } from "./utils";
export declare class ProjectionsHelper<T> {
    private _typeT;
    private _aliasTable;
    private _addAliasTableToAlias;
    private _registerProjetionCallback?;
    private __result?;
    private readonly _projectionsUtils;
    constructor(_typeT: new () => T, _aliasTable: string, _addAliasTableToAlias?: boolean, _registerProjetionCallback?: (projection: ProjectionModel) => void, __result?: ProjectionModel[]);
    _result(): ProjectionModel[];
    resultWithoutParams(): string[];
    exp<TReturn>(expression?: ExpressionOrColumn<TReturn, T>, alias?: string, args?: any[]): ProjectionsHelper<T>;
    concat(alias: string, ...projections: Array<ExpressionProjection<any, T>>): ProjectionsHelper<T>;
    group(alias: string, ...projections: Array<ExpressionProjection<any, T>>): ProjectionsHelper<T>;
    sum<TReturn>(expression?: ExpressionQuery<TReturn, T>, alias?: string, args?: any[]): ProjectionsHelper<T>;
    max<TReturn>(expression?: ExpressionQuery<TReturn, T>, alias?: string, args?: any[]): ProjectionsHelper<T>;
    min<TReturn>(expression?: ExpressionQuery<TReturn, T>, alias?: string, args?: any[]): ProjectionsHelper<T>;
    avg<TReturn>(expression?: ExpressionQuery<TReturn, T>, alias?: string, args?: any[]): ProjectionsHelper<T>;
    count<TReturn>(expression?: ExpressionQuery<TReturn, T>, alias?: string, args?: any[]): ProjectionsHelper<T>;
    cast<TReturn>(expression?: ExpressionQuery<TReturn, T>, alias?: string, args?: any[]): ProjectionsHelper<T>;
    distinct<TReturn>(expression?: ExpressionQuery<TReturn, T>, alias?: string, args?: any[]): ProjectionsHelper<T>;
    round<TReturn>(expression?: ExpressionQuery<TReturn, T>, alias?: string, args?: any[]): ProjectionsHelper<T>;
    coalesce<TReturn>(expression: ExpressionQuery<TReturn, T>, argumentsCoalesce: any[], alias?: string, args?: any[]): ProjectionsHelper<T>;
    private getResult;
}
