"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.UpstreamPullStrategy = exports.PullAfterNext = exports.PullAfterAllEnqueued = void 0;
exports.pullAfterAllEnqueued = pullAfterAllEnqueued;
exports.pullAfterNext = pullAfterNext;
exports.unifyUpstreamPullStrategy = unifyUpstreamPullStrategy;

class PullAfterNext {
  constructor(emitSeparator) {
    this.emitSeparator = emitSeparator;
    this._tag = "PullAfterNext";
  }

}

exports.PullAfterNext = PullAfterNext;

class PullAfterAllEnqueued {
  constructor(emitSeparator) {
    this.emitSeparator = emitSeparator;
    this._tag = "PullAfterAllEnqueued";
  }

}

exports.PullAfterAllEnqueued = PullAfterAllEnqueued;
const UpstreamPullStrategy = {};
/**
 * @tsplus unify ets/Channel/UpstreamPullStrategy
 */

exports.UpstreamPullStrategy = UpstreamPullStrategy;

function unifyUpstreamPullStrategy(self) {
  return self;
}
/**
 * @tsplus static ets/Channel/UpstreamPullStrategy/Ops PullAfterNext
 */


function pullAfterNext(emitSeparator) {
  return new PullAfterNext(emitSeparator);
}
/**
 * @tsplus static ets/Channel/UpstreamPullStrategy/Ops PullAfterAllEnqueued
 */


function pullAfterAllEnqueued(emitSeparator) {
  return new PullAfterAllEnqueued(emitSeparator);
}
//# sourceMappingURL=UpstreamPullStrategy.js.map