"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.UpstreamPullRequest = exports.Pulled = exports.NoUpstream = void 0;
exports.noUpstream = noUpstream;
exports.pulled = pulled;
exports.unifyUpstreamPullRequest = unifyUpstreamPullRequest;

class Pulled {
  constructor(value) {
    this.value = value;
    this._tag = "Pulled";
  }

}

exports.Pulled = Pulled;

class NoUpstream {
  constructor(activeDownstreamCount) {
    this.activeDownstreamCount = activeDownstreamCount;
    this._tag = "NoUpstream";
  }

}

exports.NoUpstream = NoUpstream;
const UpstreamPullRequest = {};
/**
 * @tsplus unify ets/Channel/UpstreamPullRequest
 */

exports.UpstreamPullRequest = UpstreamPullRequest;

function unifyUpstreamPullRequest(self) {
  return self;
}
/**
 * @tsplus static ets/Channel/UpstreamPullRequest/Ops Pulled
 */


function pulled(value) {
  return new Pulled(value);
}
/**
 * @tsplus static ets/Channel/UpstreamPullRequest/Ops NoUpstream
 */


function noUpstream(activeDownstreamCount) {
  return new NoUpstream(activeDownstreamCount);
}
//# sourceMappingURL=UpstreamPullRequest.js.map