import { Expression } from '../core/expression'; import { DataType } from '../types/data-type'; import { EvaluationContext } from '../types/evaluation-context'; import { FunctionContainer } from '../types/function-container'; import { ExpressionArray, FuncFields } from '../types/utils'; export declare class FunctionApplicationExpression implements Expression { readonly container: FunctionContainer; readonly member: string; readonly args: Expression[]; readonly dataType: DataType; constructor(container: FunctionContainer, member: string, args: Expression[]); evaluate(context: EvaluationContext): any; } export declare function func & string>(container: TContainer, member: TMember, ...args: TContainer extends Record any> ? ExpressionArray> : never): TContainer extends Record any> ? Expression> : never; export declare const funcs: { concat: (args_0: Expression, args_1: Expression) => Expression; indexOf: (args_0: Expression, args_1: Expression) => Expression; endsWith: (args_0: Expression, args_1: Expression) => Expression; startsWith: (args_0: Expression, args_1: Expression) => Expression; lower: (args_0: Expression, args_1: Expression) => Expression; add: (args_0: Expression, args_1: Expression) => Expression; subtract: (args_0: Expression, args_1: Expression) => Expression; equal: (args_0: Expression, args_1: Expression) => Expression; greater: (args_0: Expression, args_1: Expression) => Expression; count: (args_0: Expression) => Expression; sum: (args_0: Expression<(number | undefined)[]>) => Expression; multiply: (args_0: Expression, args_1: Expression) => Expression; xor: (args_0: Expression, args_1: Expression) => Expression; contains: (args_0: Expression, args_1: Expression) => Expression; any: (args_0: Expression) => Expression; countDistinct: (args_0: Expression) => Expression; maximum: (args_0: Expression<(number | undefined)[]>) => Expression; minimum: (args_0: Expression<(number | undefined)[]>) => Expression; average: (args_0: Expression<(number | undefined)[]>) => Expression; and: (args_0: Expression, args_1: Expression) => Expression; or: (args_0: Expression, args_1: Expression) => Expression; not: (args_0: Expression) => Expression; distinct: (args_0: Expression) => Expression; first: (args_0: Expression) => Expression; in: (args_0: Expression, args_1: Expression) => Expression; notEqual: (args_0: Expression, args_1: Expression) => Expression; greaterOrEqual: (args_0: Expression, args_1: Expression) => Expression; lowerOrEqual: (args_0: Expression, args_1: Expression) => Expression; has: (args_0: Expression, args_1: Expression) => Expression; divide: (args_0: Expression, args_1: Expression) => Expression; divideInteger: (args_0: Expression, args_1: Expression) => Expression; modulo: (args_0: Expression, args_1: Expression) => Expression; upperCase: (args_0: Expression) => Expression; lowerCase: (args_0: Expression) => Expression; getLength: (args_0: Expression) => Expression; asString: (args_0: Expression) => Expression; }; export declare function isFunctionApplication(expr: Expression, container: TContainer, member: keyof TContainer): expr is FunctionApplicationExpression;