import { FindOperator, SelectQueryBuilder } from 'typeorm'; import { WherePredicateOperator } from 'typeorm/query-builder/WhereClause'; import { PaginateQuery } from './decorator'; export declare enum FilterOperator { EQ = "$eq", GT = "$gt", GTE = "$gte", IN = "$in", NULL = "$null", LT = "$lt", LTE = "$lte", BTW = "$btw", ILIKE = "$ilike", SW = "$sw", CONTAINS = "$contains" } export declare function isOperator(value: unknown): value is FilterOperator; export declare enum FilterSuffix { NOT = "$not" } export declare function isSuffix(value: unknown): value is FilterSuffix; export declare enum FilterComparator { AND = "$and", OR = "$or" } export declare function isComparator(value: unknown): value is FilterComparator; export declare const OperatorSymbolToFunction: Map FindOperator>; type Filter = { comparator: FilterComparator; findOperator: FindOperator; }; type ColumnsFilters = { [columnName: string]: Filter[]; }; export interface FilterToken { comparator: FilterComparator; suffix?: FilterSuffix; operator: FilterOperator; value: string; } export declare function fixQueryParam(alias: string, column: string, filter: Filter, condition: WherePredicateOperator, parameters: { [key: string]: string; }): { [key: string]: string; }; export declare function generatePredicateCondition(qb: SelectQueryBuilder, column: string, filter: Filter, alias: string, isVirtualProperty?: boolean): WherePredicateOperator; export declare function addWhereCondition(qb: SelectQueryBuilder, column: string, filter: ColumnsFilters): void; export declare function parseFilterToken(raw?: string): FilterToken | null; export declare function parseFilter(query: PaginateQuery, filterableColumns?: { [column: string]: (FilterOperator | FilterSuffix)[] | true; }): ColumnsFilters; export declare function addFilter(qb: SelectQueryBuilder, query: PaginateQuery, filterableColumns?: { [column: string]: (FilterOperator | FilterSuffix)[] | true; }): SelectQueryBuilder; export {};