import { QueryDocument } from "./queryBuilder";
import { InternalMapping } from "../mapping/internalMapping";
import { EntityMapping } from "../mapping/entityMapping";
export declare class CriteriaBuilder {
    protected mapping: EntityMapping;
    error: Error;
    constructor(mapping: EntityMapping);
    build(criteria: QueryDocument): QueryDocument;
    protected prepareQueryDocument(query: QueryDocument, mapping?: InternalMapping, withinField?: boolean): QueryDocument;
    private _prepareQueryExpression(operator, query, mapping);
    protected prepareArrayOfValues(operator: string, value: any[], mapping: InternalMapping): any[];
    protected prepareQueryValue(path: string, value: any, mapping: InternalMapping): any;
    private _findArrayDepth(value, depth?);
    protected isQueryExpression(value: any): boolean;
}
