import { NonEmptyAdapterAggregation as Aggregation, AdapterFilter as Filter, AnyFixMe, Sort } from '@wix-velo/velo-external-db-types'; import { ParsedFilter } from './types'; export default class FilterParser { constructor(); transform(filter: Filter): { filterExpr: string; parameters: never[]; offset: number; } | { filterExpr: string; filterColumns: []; offset: number; parameters: any[]; }; adapterFunction2Sql(f: string): "AVG" | "MAX" | "MIN" | "SUM" | "COUNT"; parseAggregation(aggregation: Aggregation, offset: number): { fieldsStatement: any; groupByColumns: any[]; havingFilter: string; parameters: any; offset: any; }; createFieldsStatementAndAliases(projectionFunctions: AnyFixMe, groupByColumns: AnyFixMe): { filterColumnsStr: any; aliasToFunction: { [key: string]: any; }; }; extractFilterExprAndParams(havingFilter: any[], offset: number): { filterExpr: string; parameters: any; offset: any; }; parseFilter(filter: Filter, offset: number, inlineFields: { [key: string]: any; }): ParsedFilter[]; isNestedField(fieldName: string): boolean; valueForStringOperator(operator: string, value: any): string | undefined; isSingleFieldOperator(operator: string): boolean; isSingleFieldStringOperator(operator: string): boolean; prepareStatementVariables(n: number, offset: number): string; valueForOperator(value: string | string[], operator: string, offset: number): { sql: string; offset: number; }; adapterOperatorToMySqlOperator(operator: string, value: any): "=" | "IS NULL" | "<>" | "IS NOT NULL" | "<" | "<=" | ">" | ">=" | "IN" | undefined; orderBy(sort: Sort[]): { sortExpr: string; }; parseSort({ fieldName, direction }: Sort): { expr: string; }[]; selectFieldsFor(projection: string[]): string; patchTrueFalseValue(value: any): any; inlineVariableIfNeeded(fieldName: string, inlineFields: { [key: string]: any; }): any; }