import { StepTree } from '../Utils/WdkUser'; import { AddType, PartialUiStepTree } from '../Views/Strategy/Types'; declare type SimilarTreesDiffResult = { areSimilar: false; } | { areSimilar: true; diffs: { oldStepId: number; newStepId: number; }[]; }; export declare const diffSimilarStepTrees: (oldTree: StepTree, newTree: StepTree) => SimilarTreesDiffResult; export declare const replaceStep: (stepTree: StepTree, oldStepId: number, newStepId: number) => StepTree; export declare const addStep: (stepTree: StepTree, addType: AddType, newStepId: number, newStepSecondaryInput: StepTree | undefined) => StepTree; declare type NodeMetadata = { type: "not-in-tree"; } | { type: "root"; node: StepTree; } | { type: "primary-input"; node: StepTree; parentNode: StepTree; } | { type: "secondary-input"; node: StepTree; parentNode: StepTree; }; export declare const getNodeMetadata: (tree: StepTree, targetId: number) => NodeMetadata; export declare const getOutputStep: (stepTree: StepTree, addType: AddType) => StepTree | undefined; export declare const getPreviousStep: (stepTree: StepTree, addType: AddType) => StepTree | undefined; export declare const findSubtree: (stepTree: StepTree | undefined, targetStepId: number) => StepTree | undefined; export declare const findNestedStrategyRoot: (root: PartialUiStepTree, targetStepId: number) => PartialUiStepTree | undefined; export declare const findSlotNumber: (root: PartialUiStepTree, targetStepId: number) => number; export declare const findPrimaryBranchHeight: (stepTree: StepTree) => number; export declare const findPrimaryBranchLeaf: (stepTree: StepTree) => StepTree; /** * Creates a new step tree with the target step and affected steps removed from * the step tree. * * Note that this function does not perform any validation on the resulting step * tree. It is expected that either: a) it has already been determined that the * removal of the target step is a valid operation, or b) that code downstream * of this function will handle invalid step trees. */ export declare const removeStep: (stepTree: StepTree, targetStepId: number, deleteSubtree?: boolean) => StepTree | undefined; /** * Create a new copy of the provided stepTree, converting stepIds using * the provided mapStepId function. */ export declare function mapStepTreeIds(stepTree: StepTree, mapStepId: (stepId: number) => number): StepTree; /** * Creates an iterable of step IDs in a step tree. */ export declare function getStepIds(stepTree: StepTree | undefined): Array; export {}; //# sourceMappingURL=StrategyUtils.d.ts.map