import { IExpressionContext } from "../core/index";
export declare class DefaultFunctions {
    protected context: IExpressionContext | undefined;
    constructor(context?: IExpressionContext);
    GetChainedPropertyValue(chainedPropName: string): any;
    GetContextParameter(propertyName: string): any;
    GetSessionValue(propertyName: string): any;
    eval(expr: string, arg?: any): any;
    GetComputeJsonData(chainedPropName: any, propName: string): any;
    GetInjectedEntity(name: string): null;
    /**
     * 聚合类函数******************************************************************************************
     */
    Sum(paramArray: number[]): number;
    IncludedInList(value: string | number, list: any[]): boolean;
    ExistData(chainedPropName: any): any;
    SumByProp(chainedPropName: any, propertyName: any): any;
    CountByProp(chainedPropName: string, propertyName: string): any;
    AvgByProp(chainedPropName: string, propertyName: string): any;
    MaxByProp(chainedPropName: string, propertyName: string): any;
    MinByProp(chainedPropName: string, propertyName: string): any;
    /**
     * 子表数据数量
     * @param chainedPropName
     */
    CountOfChild(chainedPropName: string): any;
    /**
     * 子表按属性排序
     * @param chainedPropName
     * @param propertyName
     * @param orderType
     * @returns
     */
    SortChildData(chainedPropName: string, propertyName: string, orderType: string): any;
    /**
     * 子表有无匹配的值
     * @param chainedPropName
     * @param propertyName
     * @param propertyValue
     */
    IsContainMatch(chainedPropName: string, propertyName: string, propertyValue: any): any;
    MinValueOfPeriod(chainedPropName: string, datePropertyName: string, valuePropertyName: string, start: any, end: any): any;
    MaxValueOfPeriod(chainedPropName: string, datePropertyName: string, valuePropertyName: string, start: any, end: any): any;
    AvgValueOfPeriod(chainedPropName: string, datePropertyName: string, valuePropertyName: string, start: any, end: any): any;
    isValidDate(d: string | number | Date): boolean;
    getIterable(item: any): any;
    private comparator;
    getPropValue(target: any, prop: string): any;
    isEqual(v1: any, v2: any): boolean;
    private hasProp;
    /**
     * 字符串函数**********************************************************************************
     */
    StringSubstring(originalString: string, startIndex: number, length: number | undefined): string;
    Length(originalString: string): number;
    StringLength(originalString: string | any[]): number;
    StringReplace(originalString: string, oldValue: string | RegExp, newValue: any): string;
    ToUpper(originalString: string): string;
    ToLower(originalString: string): string;
    IndexOf(originalString: string, value: string): number;
    LastIndexOf(originalString: string | any[], value: any): number;
    TrimStart(originalString: string): string;
    TrimEnd(originalString: string): string;
    Trim(originalString: string): string;
    SubString(originalString: string, startIndex: any, length: any): string;
    GetStringLength(obj: any): number;
    Replace(originalString: any, oldValue: any, newValue: any): string;
    CreateGuid(): string;
    CaseToSql(col: string | null): string;
    IsNullEmpty(str: string | null): boolean;
    Add(...str: string[]): string;
    /**
     * 转化类函数*****************************************************************************************
     */
    ToByte(obj: number): number;
    ToStringX(obj: null | undefined): string | null | undefined;
    ToDateTime(obj: string | number | Date): Date;
    ToBoolean(obj: string | null | undefined): boolean | null | undefined;
    ToDecimal(obj: any): number;
    ToBigDecimal(value: undefined): number;
    ToCustomBigDecimal(value: number | string, fractionDigits?: number): string | 0;
    ToDouble(obj: any): number;
    ToFloat(obj: any): number;
    ToInt16(obj: string): number;
    ToInt32(obj: string): number;
    ToChineseMoney(money: number): string;
    /**
     * 判断函数****************************************************************************8
     */
    IsNull(obj: null): boolean;
    IsNullOrWhiteSpace(obj: string | null): boolean;
    IsNaN(obj: any): boolean;
    IsNumber(obj: any): boolean;
    /**
     * 数学类函数***************************************************************************************************
     */
    sin(value: number): number;
    cos(value: number): number;
    random(value: any): number;
    ceil(value: number): number;
    abs(value: number): number;
    floor(value: number): number;
    round(value: number, digits: number): number;
    bankerRound(value: any, num: number): string | undefined;
    /**
     * 身份证函数**************************************************************************************************
     */
    GetBirthday(idCard: string): string | null;
    GetAge(idCard: any): number | undefined;
    GetSex(idCard: string): string | null;
    IsIDcard(idcard: string): boolean;
    /**
     * 日期型函数******************************************************************************************************
     */
    DateTimeAddDays(date: string, value: number): string | Date;
    DateTimeAddMonths(date: string, value: number): string | Date;
    DateTimeAddYears(date: string, value: number): string | Date;
    GetFirstDayOfMonth(date: string): string | null;
    GetLastDayOfMonth(date: string): string | null;
    GetDateTimeNow(): string | null;
    CompareDate(str1: string, str2: string): 0 | 1 | -1 | undefined;
    FormatDate(format?: string): string | null;
    FormatDefineDate(format: string, datesStr?: null | string | Date): string | null;
    Today(date?: null): string | null;
    Yesterday(date?: null): string | null;
    Tomorrow(date?: null): string | null;
    ThisYear(date?: null): string;
    LastYear(date?: null): string;
    NextYear(date?: null): string;
    ThisMonth(date?: null): string;
    LastMonth(date?: null): string;
    NextMonth(date?: null): string;
    DayOfWeek(date?: null): string;
    isLeapYear(year: number): boolean;
    getMonthDays(year: any, month: string | number): number;
    ThisWeek(date?: null): number;
    LastWeek(date?: null): string;
    NextWeek(date?: null): string;
    FirstDayOfWeek(date?: null): string | null;
    LastDayOfWeek(date?: null): string | null;
    FirstDayOfLastWeek(date?: null): string | null;
    LastDayOfLastWeek(date?: null): string | null;
    FirstDayOfNextWeek(date?: null): string | null;
    LastDayOfNextWeek(date?: null): string | null;
    FirstDayOfMonth(date?: null): string | null;
    LastDayOfMonth(date?: null): string | null;
    FirstDayOfLastMonth(date?: null): string | null;
    LastDayOfLastMonth(date?: null): string | null;
    FirstDayOfNextMonth(date?: null): string | null;
    LastDayOfNextMonth(date?: null): string | null;
    FirstDayOfYear(date?: null): string | null;
    LastDayOfYear(date?: null): string | null;
    FirstDayOfLastYear(date?: null): string | null;
    LastDayOfLastYear(date?: null): string | null;
    FirstDayOfNextYear(date?: null): string | null;
    LastDayOfNextYear(date?: null): string | null;
    GetDate(format: any, date?: null): string | number | null;
    /**
     * 计算日期2与日期1直接相差的天数
     * @param date1 日期1
     * @param date2 日期2
     * @description 当两个日期中有一个为空时，则不计算，返回null。
     * 该函数是时间差中的一个实现，只返回差的天数，如果差的天数不足一天，则返回0
     */
    DayDifference(date1: string, date2: string): number | null;
    IsExistRecord(chainedPropName: string, propertyName: string, matchValue: string): any;
    ListContains(chainedPropName: any, propertyName: any, matchValue: any): any;
    ListGreaterThan(chainedPropName: any, propertyName: any, matchValue: any): any;
    ListLessThan(chainedPropName: any, propertyName: any, matchValue: any): any;
    ListStartWith(chainedPropName: any, propertyName: any, matchValue: any): any;
    ListEndWith(chainedPropName: any, propertyName: any, matchValue: any): any;
    getComputeJsonData(chainedPropName: any, propertyName: any): void;
    Contains(originalString: string | any[], matchString: null): boolean;
    NotContains(originalString: string | any[] | null, matchString: null): boolean;
    StartsWith(originalString: string | null, matchString: null): boolean;
    NotStartsWith(originalString: string | null, matchString: null): boolean;
    EndsWith(originalString: string | null, matchString: null): boolean;
    NotEndsWith(originalString: string | null, matchString: null): boolean;
    trimStart(s: string | null, c: any): string | null;
    trimEnd(s: string | null | undefined, c: any): string | null | undefined;
    trimStartEnd(s: any, c: any): string | null | undefined;
    MultiplyChildNumber(chainedPropName: string, prop1: string, prop2: string): any;
}
