import { APISchema } from '../../schema/APISchema';
import { IQuery } from '../IQuery';
export declare class QueryBuilder {
    private static _queryBuilderInstance;
    private _filterQueryBuilder;
    private _projectionQueryBuilder;
    private _groupingQueryBuilder;
    constructor();
    static getInstance(): QueryBuilder;
    buildDrillThroughPipeline(drillThroughQuery: any, schema: APISchema, clientSideLimit: number): any[];
    buildFlatPipelineFacet(query: any | IQuery[], schema: APISchema): any[];
    buildAggregationPipelineFacet(queries: any | IQuery[], schema: APISchema, templateQuery?: IQuery, isPaginated?: boolean): any[];
    buildMembersPipeline(fieldObject: any, schema: APISchema): any[];
    private applyPaging;
}
export interface PagingObject {
    skipNumber: number;
    limitNumber: number;
}
