code: function Transition(source, target, kind) {
          if (kind === void 0) { kind = TransitionKind.External; }
          var _this = this;
          this.source = source;
          this.target = target;
          this.kind = kind;
          /** The user-defined [[Action]]s that will be invoked when this [[Transition]] is traversed. */
          /** @internal */ this.transitionBehavior = new Array();
          if (!this.target) {
              this.kind = TransitionKind.Internal;
          }
          this.guard = source instanceof PseudoState ? TrueFunc : (function (message) { return message === _this.source; });
          this.source.outgoing.push(this);
          if (this.target) {
              this.target.incoming.push(this);
          }
          this.source.getRoot().clean = false;
      }
docs: Creates a new instance of the [[Transition]] class.
  @param source The source [[Vertex]] of the [[Transition]].
  @param source The target [[Vertex]] of the [[Transition]]; this is an optional parameter, omitting it will create an [[Internal]] [[Transition]].
  @param kind The kind the [[Transition]]; use this to set [[Local]] or [[External]] (the default if omitted) transition semantics.