import { Diff } from "deep-diff";
import { DependenciesState, ErrorShape } from '../../redux/currentApp/executionTree/executionState';
import { RawTreeShape } from '../../utils/executionTreeHelper/interface';
export declare const IGNORE_ACTION_RUN_ATTR_NAME: string[];
export declare const IGNORE_AUTO_RUN_WITH_RUN_SCRIPT_ATTR_RULES: RegExp[];
export declare const isRunScriptAttr: (attrPath: string) => boolean;
export declare class ExecutionTreeFactory {
    dependenciesState: DependenciesState;
    inDependencyTree: DependenciesState;
    evalOrder: string[];
    oldRawTree: RawTreeShape;
    hasCyclical: boolean;
    executedTree: RawTreeShape;
    errorTree: Record<string, any>;
    debuggerData: Record<string, any>;
    allKeys: Record<string, true>;
    runningActionsMap: Map<string, number>;
    constructor();
    destroyTree(): any;
    initTree(rawTree: RawTreeShape): {
        dependencyTree: DependenciesState;
        evaluatedTree: any;
        errorTree: Record<string, any>;
        debuggerData: Record<string, any>;
        independencyTree: DependenciesState;
    };
    validateTree(tree: RawTreeShape): RawTreeShape;
    calcSubTreeSortOrder(differences: Diff<any, any>[], rawTree: RawTreeShape, isIgnoreDynamicPaths?: boolean): string[];
    getEvaluationSortOrder(changes: Array<string>, inverseMap: DependenciesState): Array<string>;
    getCompleteSortOrder(changes: string[], inDependencyTree: DependenciesState): string[];
    mergeErrorTree(newErrorTree: Record<string, any>, paths: string[], isDeletedAction?: boolean): void;
    mergeDebugDataTree(newDebugDataTree: Record<string, any>, paths: string[], isDeletedAction?: boolean): void;
    updateExecutionTreeByUpdatePaths(paths: string[], executionTree: RawTreeShape, rawTree: RawTreeShape, walkedPath: Set<string>): any;
    updateTree(rawTree: RawTreeShape, isDeleteAction?: boolean): {
        dependencyTree: DependenciesState;
        evaluatedTree: any;
        errorTree: Record<string, any>;
        debuggerData: Record<string, any>;
        independencyTree: DependenciesState;
    } | {
        dependencyTree: DependenciesState;
        evaluatedTree: RawTreeShape;
        errorTree: Record<string, any>;
        independencyTree: DependenciesState;
        debuggerData?: undefined;
    };
    setEvaluatedTree(executedTree: Record<string, any>): void;
    getUpdatePathFromDifferences(differences: Diff<Record<string, any>, Record<string, any>>[]): string[];
    updateRawTreeByUpdatePaths(paths: string[], executionTree: Record<string, any>, walkedPath: Set<string>): any;
    updateTreeFromExecution(executionTree: Record<string, any>): {
        evaluatedTree: RawTreeShape;
        errorTree?: undefined;
        debuggerData?: undefined;
    } | {
        evaluatedTree: RawTreeShape;
        errorTree: Record<string, any>;
        debuggerData: Record<string, any>;
    };
    listEntityDependencies(widgetOrAction: Record<string, any>, displayName: string): DependenciesState;
    generateDependenciesMap(rawTree: RawTreeShape): DependenciesState;
    sortEvalOrder(dependenciesMap: DependenciesState): string[];
    generateInDependenciesMap(): DependenciesState;
    executeTree(oldRawTree: RawTreeShape, sortedEvalOrder: string[], point?: number): {
        evaluatedTree: any;
        errorTree: Record<string, ErrorShape[]>;
        debuggerData: Record<string, ErrorShape[]>;
    };
}
