import { MappedFilter, QueryBuilderQuery } from '../types'; import { Logger } from './Logger'; export declare enum ComparisonQueryOperatorEnum { GREATER_THAN_EQUALS = "$gte", GREATER_THAN = "$gt", EQUALS = "$eq", IN = "$in", LESS_THAN = "$lt", LESS_THAN_EQUALS = "$lte", NOT_EQUALS = "$ne", NOT_IN = "$nin" } export declare enum EvaluationQueryOperatorEnum { REGEX = "$regex" } export declare enum LogicalQueryOperatorEnum { AND = "$and", NOT = "$not", NOR = "$nor", OR = "$or" } export declare enum ArrayQueryOperatorEnum { ALL = "$all" } export declare enum QueryBuilderErrors { MISSING_OPERATOR = "You have to specify an operator", UNKNOWN_OPERATOR = "Unknown operator passed", MISSING_FIELD = "The filter query requires a field", MISSING_VALUE = "The filter query requires a value", MISSING_FILTERS = "No filters property was specified", NOT_A_NUMBER = "This filter requires a number as value", NOT_AN_ARRAY = "This filter requires an array as value", NOT_A_STRING = "This filter requires a strinig as value", INVALID_REGEX = "This is not a valid regular expression" } export declare class QueryBuilder { logger: Logger; constructor(logger: Logger); buildAll(filters: QueryBuilderQuery[]): MappedFilter[]; build(filter: QueryBuilderQuery): MappedFilter | null; }