import { ProjectionModel } from "./../crud/projection-model";
import { Projection } from "../crud/enums/projection";
import { ExpressionQuery } from "./utils";
export declare class ProjectionsUtils<T> {
    private _aliasTable;
    private _addAliasTableToAlias;
    private _addAliasDefault;
    private _registerProjetionCallback?;
    static readonly WILDCARD = "*";
    private _pendingProjections;
    constructor(_aliasTable: string, _addAliasTableToAlias?: boolean, _addAliasDefault?: boolean, _registerProjetionCallback?: (projection: ProjectionModel) => void);
    apply<TReturn>(expression?: ExpressionQuery<TReturn, T>, projections?: Projection[], alias?: string, args?: any[]): ProjectionModel;
    create(column: string, projections?: Projection[], alias?: string, args?: any[]): ProjectionModel;
    addAliasTable(column: string): string;
    private _apply;
    private checkApply;
    private register;
    private createProjection;
    private defaultAliasAs;
    private builderProjections;
    private builderProjection;
    private buildArgs;
    private buildColumn;
}
