import { ComputedRenderPropsChildren, ConditionType, ResultDataType, ResultRowListType, SelectRelateOption, SelectRelateType } from "./type";
export declare class ConditionRenderService {
    private relateObj;
    private expressionRelate;
    private computedRelate;
    private conditionType;
    private conditionData;
    private loadCurrentProps;
    constructor();
    /**
     * 初始化数据内容
     * @param data
     */
    load(data?: ComputedRenderPropsChildren[], conditionType?: ConditionType): void;
    /**
     * 注入当前模块的props
     * 最终是给CLowCodeService load注入props
     * @param data
    */
    loadProps(data: any): void;
    /**
     * 增加
     * @param data
     * @returns
     */
    addRowData(data: ComputedRenderPropsChildren): ComputedRenderPropsChildren[];
    /**
     * 删除
     * @param data
     */
    removeRowData(data: ComputedRenderPropsChildren): ComputedRenderPropsChildren[];
    /**
     * 添加同行
     * @param data
     * @returns
     */
    copyRowData(data: ComputedRenderPropsChildren): ComputedRenderPropsChildren[];
    /**
     * 修改行属性
     * @param data
     */
    alterRowData(data: ComputedRenderPropsChildren): ComputedRenderPropsChildren[];
    /**
     * 修改结果列表数据
     * @param data
     */
    alterResultData(data: ResultRowListType): any[];
    /**
     * 判断是否是最后一个
     * @returns
     */
    isLastData(conditions: ComputedRenderPropsChildren[]): boolean;
    /**
     * 初始化一个树数据
     * @param type
     * @returns
     */
    createInitItemOneByType(type: ConditionType): ComputedRenderPropsChildren;
    /**
     * 初始化一个结果返回数据结构
     * @returns
     */
    createInitResultData(): ResultDataType;
    /**
     * 得到关系下拉选择内容
     * @param type
     * @returns
     */
    getSelectRelateByType(type: SelectRelateType): SelectRelateOption[];
    /**
     * 得到整个处理的关系表达式,
     * 表达式`${(this.state.state.c5lt0_bt*3)}B`
     * 存在大数计算问题，解决方法
     * 将生成的表达式替换成this.state.expression.xxx
     * 收集此表达式里面的依赖项
     * 数据改变根据依赖项触发this.setSate中的 expressions改变
     *
     * 拼接表达式复杂类型需要重新检查，只是简单拼接
     *
     */
    getConditionExpression(): {
        type: string;
        value: string;
        mock: string;
    };
    /**
    * 得到依赖订阅数据关系数据
    * @returns
    */
    getSubscribe(): string[];
    /**
     * 计算结果内容
     */
    getComputedResult(): any;
    /**
     * 得到拷贝的新的关系，只重新生成id信息
     * @param list
     */
    getCopyConditionData(list: ComputedRenderPropsChildren[]): ComputedRenderPropsChildren[];
    private handleCopyConditionMain;
    /**
     * 暂时只是把拼接出来成了+
     * @param str
     * @returns
     */
    private handleExpressToSting;
    private getWordString;
    /**
     * 暂时不需要那么复杂的处理逻辑
     * @param str
     * @returns
     */
    private _handleExpressToSting;
    private getIndexById;
    private handleAddRowData;
    private handleRemoveRowData;
    private handleCopyRowData;
    private handleAlterRowData;
    private handleAlterRowResultData;
    private handleConditionExpression;
    /**
     * 赋值不参与表达式计算
     * @param rowData
     * @returns
     */
    private getRowExpression;
    private getRowExpressionItem;
    /**
     * 数据源，自定义参数，弹框等
     * 第二个参数可能存在一下情况
     * 1，纯字符串，则点拼接
     * 2，带[]则需要拼接
     */
    private handleLastInputData;
    /**
     * 第二个参数可以是
     * 1, id
     * 2, [0].id
     * 3, data[0].id.test[0].xxx
     *
     * 最终返回数据
     * 1, ?.id
     * 2, ?.[0].id
     * 3, ?.data?.[0]?.id?.test?.[0]?.xxx
     *
     * @param str
     * @returns
     */
    private handleLastInputDataPro;
    /**
     * 处理表达式里面的.
     * @param str
     * @returns
     */
    private handleExpressionData;
    /**
     * 处理类似这样的数据 data6SN0D[0]
     * 变成 data6SN0D?.[0]
     * @param str
     */
    private handleArrayData;
    private handleLastWalletConnect;
    private handleLastLocationData;
    private handleRenderPropsData;
    private handleEngineRuleExpression;
    private handleSubscribe;
    /**
     * 这里可以简单优化：
     *  且情况下只要有一个children结果为false则就结束循环，整体为false
     *  或情况下只要有一个children结果为true则就结束循环，整体为true
     * @param oldData
     * @param parentRelate
     * @returns
     */
    private handleComputedResult;
    private handleComputedRowData;
    private handleComputedRowDataByFormKey;
    private createFormKeyParams;
    private handleComputedData;
    private collectTreeKey;
    /**
     * 表达式不可能存在多个情况
     * @param treeData
     */
    private getCurrentPageExpression;
    /**
     * 去除收尾的()
     * @param str
     * @returns
     */
    private getRemoveBracket;
    /**
     * (((${this?.state?.state?.ci769_b*3})+(${this?.state?.state?.c6w76_a*2}))###(B))
     * @param str 处理中间有连接的需要将2个$变成一个
     * @returns
     */
    private handleAndReplace;
    private getDefaultData;
    private getRelateList;
    private getComputedByRelate;
    private checkNumber;
    private numberToBigNumber;
    /**
     * 处理特殊内容比较
     * false==='false', 布尔值
     * null==='null'
     * undefined==='undefined'
     *
     * 支持 "",null,undefined 都是一样的false
     *
     * @param a
     * @param b
     */
    private handleSpecialCompare;
    private handleCaseSpecialCompare;
    /**
     * 将特殊的值字符串转换成特殊内容
     * "false" =>false,
     * 'null' =>null
     * 'undefined'=>undefined
     * '', '""'=>false
     * " "=>false
     * @param a
     */
    private getSpecialValueByString;
    private getBigNumber;
    private getExpressionByRelate;
    private getRegList;
}
