import BaseNode from "../../../graph/BaseNode.js";
import { NodeBuilder, NodeTypeGuard } from "../../../graph/Node.js";
import { Instruction } from "../../../../../../Joinpoints.js";
import ConditionNode from "./ConditionNode.js";
import ControlFlowEdge from "../../edge/ControlFlowEdge.js";
declare namespace TryCatchNode {
    class Class<D extends Data = Data, S extends ScratchData = ScratchData> extends ConditionNode.Class<D, S> {
        get jp(): Instruction;
    }
    class Builder extends ConditionNode.Builder implements NodeBuilder<Data, ScratchData> {
        constructor(truePath: ControlFlowEdge.Class, falsePath: ControlFlowEdge.Class, $jp: Instruction);
        buildData(data: BaseNode.Data): Data;
        buildScratchData(scratchData: BaseNode.ScratchData): ScratchData;
    }
    const TypeGuard: NodeTypeGuard<Data, ScratchData>;
    interface Data extends ConditionNode.Data {
        conditionFlowNodeType: ConditionNode.Type.TRY_CATCH;
    }
    interface ScratchData extends ConditionNode.ScratchData {
        $jp: Instruction;
    }
}
export default TryCatchNode;
//# sourceMappingURL=TryCatchNode.d.ts.map