"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports._E = exports._A = exports.SyntheticFiber = exports.FiberSym = exports.Fiber = void 0;
exports.makeSynthetic = makeSynthetic;
exports.realFiber = realFiber;
exports.unifyFiber = unifyFiber;

var _a;

const FiberSym = /*#__PURE__*/Symbol.for("@effect/core/io/Fiber");
exports.FiberSym = FiberSym;

const _E = /*#__PURE__*/Symbol.for("@effect/core/io/Fiber/E");

exports._E = _E;

const _A = /*#__PURE__*/Symbol.for("@effect/core/io/Fiber/A");
/**
 * @tsplus unify ets/Fiber
 */


exports._A = _A;

function unifyFiber(self) {
  return self;
}

const Fiber = {
  $: {}
};
/**
 * @tsplus macro remove
 */

exports.Fiber = Fiber;

function realFiber(fiber) {//
}
/**
 * A synthetic fiber that is created from a pure value or that combines
 * existing fibers.
 *
 * @tsplus type ets/SyntheticFiber
 */


class SyntheticFiber {
  constructor(_id, _await, _children, _inheritRefs, _poll, _interruptAs) {
    this._id = _id;
    this._await = _await;
    this._children = _children;
    this._inheritRefs = _inheritRefs;
    this._poll = _poll;
    this._interruptAs = _interruptAs;
    this._tag = "SyntheticFiber";
    this[_a] = FiberSym;
  }

}

exports.SyntheticFiber = SyntheticFiber;
_a = FiberSym;

function makeSynthetic(_) {
  return new SyntheticFiber(_.id, _.await, _.children, _.inheritRefs, _.poll, _.interruptAs);
}
//# sourceMappingURL=definition.js.map