{
  "id": "@typed/fx#Fx.Emit",
  "canonicalId": "@typed/fx/Fx#Emit",
  "symbol": {
    "id": "@typed/fx#Fx.Emit",
    "packageName": "@typed/fx",
    "moduleName": ".",
    "exportName": "Fx.Emit",
    "kind": "type",
    "signatures": [
      "export type Emit<A, E = never> = {\n    succeed: (value: A) => Fiber<unknown, never>;\n    failCause: (cause: Cause.Cause<E>) => Fiber<unknown, never>;\n    fail: (error: E) => Fiber<unknown, never>;\n    die: (error: unknown) => Fiber<unknown, never>;\n    done: () => Fiber<unknown, never>;\n};"
    ],
    "summary": "Operations supplied to a callback producer for emitting values or ending its run.",
    "sections": {
      "Why": "Callback sources need an explicit bridge into Sink operations while retaining the\ndistinction between typed failures, defects, interruption causes, and completion.",
      "Ownership and lifetime": "An `Emit` is valid only for the active callback run. Every operation forks the\ncorresponding sink Effect in that run's scope and returns its `Fiber`; callers may\ninspect or interrupt that delivery. Retaining it after cleanup is unsupported.",
      "Property: die": "Starts delivery of one unexpected defect and returns the delivery fiber.",
      "Property: die: Why": "Programming defects remain outside the typed `E` channel.",
      "Property: die: Ownership and lifetime": "The active callback scope owns the returned fiber. The value is wrapped with\n`Cause.die` and forwarded to the sink.",
      "Property: done": "Requests early completion and returns the sink's early-exit fiber.",
      "Property: done: Why": "Finite callback APIs need an explicit completion signal distinct from failure.",
      "Property: done: Ownership and lifetime": "The active callback scope owns the returned fiber. Early exit ends the run and\ncauses callback cleanup registered by `callback` to execute.",
      "Property: fail": "Starts delivery of one typed failure and returns the delivery fiber.",
      "Property: fail: Why": "Expected callback errors enter `E` without being converted to defects.",
      "Property: fail: Ownership and lifetime": "The active callback scope owns the returned fiber. The error is wrapped with\n`Cause.fail` and forwarded to the sink.",
      "Property: failCause": "Starts delivery of a complete Effect `Cause` and returns the delivery fiber.",
      "Property: failCause: Why": "Typed failures, defects, and interruption remain structurally distinct.",
      "Property: failCause: Ownership and lifetime": "The active callback scope owns the returned fiber. This operation does not\nautomatically call `done`; terminal behavior is determined by the sink.",
      "Property: succeed": "Starts delivery of one value and returns the delivery fiber.",
      "Property: succeed: Why": "Callback producers push values when they arrive instead of waiting to be pulled.",
      "Property: succeed: Ownership and lifetime": "The active callback scope owns the returned fiber; deliveries can overlap when\n`succeed` is called again before an earlier sink Effect completes."
    },
    "examples": [],
    "relations": [],
    "source": {
      "file": "packages/fx/src/Fx/constructors/make.ts",
      "line": 91
    },
    "since": "1.0.0",
    "category": "Callback protocol"
  },
  "exposure": {
    "recordKind": "declaration",
    "id": "@typed/fx#Fx.Emit",
    "packageName": "@typed/fx",
    "packageVersion": "2.0.0-beta.13",
    "moduleName": ".",
    "consumerSpecifier": "@typed/fx",
    "exportName": "Fx",
    "qualifiedName": "Fx.Emit",
    "declarationKey": "declaration:2db5f2fbdad9a57763604fac",
    "family": "type-alias",
    "signatures": [
      "export type Emit<A, E = never> = {\n    succeed: (value: A) => Fiber<unknown, never>;\n    failCause: (cause: Cause.Cause<E>) => Fiber<unknown, never>;\n    fail: (error: E) => Fiber<unknown, never>;\n    die: (error: unknown) => Fiber<unknown, never>;\n    done: () => Fiber<unknown, never>;\n};"
    ],
    "sourceSpans": [
      {
        "file": "packages/fx/src/Fx/constructors/make.ts",
        "start": {
          "line": 91,
          "column": 1
        },
        "end": {
          "line": 177,
          "column": 3
        }
      },
      {
        "file": "packages/fx/src/Fx/constructors/make.ts",
        "start": {
          "line": 159,
          "column": 3
        },
        "end": {
          "line": 159,
          "column": 50
        }
      },
      {
        "file": "packages/fx/src/Fx/constructors/make.ts",
        "start": {
          "line": 176,
          "column": 3
        },
        "end": {
          "line": 176,
          "column": 37
        }
      },
      {
        "file": "packages/fx/src/Fx/constructors/make.ts",
        "start": {
          "line": 142,
          "column": 3
        },
        "end": {
          "line": 142,
          "column": 45
        }
      },
      {
        "file": "packages/fx/src/Fx/constructors/make.ts",
        "start": {
          "line": 125,
          "column": 3
        },
        "end": {
          "line": 125,
          "column": 63
        }
      },
      {
        "file": "packages/fx/src/Fx/constructors/make.ts",
        "start": {
          "line": 108,
          "column": 3
        },
        "end": {
          "line": 108,
          "column": 48
        }
      }
    ],
    "aliases": [
      "@typed/fx/Fx#Emit"
    ],
    "isAlias": true,
    "parentId": "@typed/fx#Fx",
    "static": false,
    "importedFrom": "declaration:2db5f2fbdad9a57763604fac"
  },
  "declaration": {
    "declarationKey": "declaration:2db5f2fbdad9a57763604fac",
    "name": "Emit",
    "family": "type-alias",
    "facets": [
      {
        "family": "type-alias",
        "syntaxKind": "TypeAliasDeclaration",
        "signatures": [
          "export type Emit<A, E = never> = {\n    succeed: (value: A) => Fiber<unknown, never>;\n    failCause: (cause: Cause.Cause<E>) => Fiber<unknown, never>;\n    fail: (error: E) => Fiber<unknown, never>;\n    die: (error: unknown) => Fiber<unknown, never>;\n    done: () => Fiber<unknown, never>;\n};"
        ],
        "typeParameters": [
          "A",
          "E = never"
        ],
        "sourceSpans": [
          {
            "file": "packages/fx/src/Fx/constructors/make.ts",
            "start": {
              "line": 91,
              "column": 1
            },
            "end": {
              "line": 177,
              "column": 3
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "die: (error: unknown) => Fiber<unknown, never>;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/fx/src/Fx/constructors/make.ts",
            "start": {
              "line": 159,
              "column": 3
            },
            "end": {
              "line": 159,
              "column": 50
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "done: () => Fiber<unknown, never>;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/fx/src/Fx/constructors/make.ts",
            "start": {
              "line": 176,
              "column": 3
            },
            "end": {
              "line": 176,
              "column": 37
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "fail: (error: E) => Fiber<unknown, never>;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/fx/src/Fx/constructors/make.ts",
            "start": {
              "line": 142,
              "column": 3
            },
            "end": {
              "line": 142,
              "column": 45
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "failCause: (cause: Cause.Cause<E>) => Fiber<unknown, never>;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/fx/src/Fx/constructors/make.ts",
            "start": {
              "line": 125,
              "column": 3
            },
            "end": {
              "line": 125,
              "column": 63
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "succeed: (value: A) => Fiber<unknown, never>;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/fx/src/Fx/constructors/make.ts",
            "start": {
              "line": 108,
              "column": 3
            },
            "end": {
              "line": 108,
              "column": 48
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      }
    ],
    "signatures": [
      "export type Emit<A, E = never> = {\n    succeed: (value: A) => Fiber<unknown, never>;\n    failCause: (cause: Cause.Cause<E>) => Fiber<unknown, never>;\n    fail: (error: E) => Fiber<unknown, never>;\n    die: (error: unknown) => Fiber<unknown, never>;\n    done: () => Fiber<unknown, never>;\n};"
    ],
    "typeParameters": [
      "A",
      "E = never"
    ],
    "summary": "Operations supplied to a callback producer for emitting values or ending its run.",
    "sections": {
      "Why": "Callback sources need an explicit bridge into Sink operations while retaining the\ndistinction between typed failures, defects, interruption causes, and completion.",
      "Ownership and lifetime": "An `Emit` is valid only for the active callback run. Every operation forks the\ncorresponding sink Effect in that run's scope and returns its `Fiber`; callers may\ninspect or interrupt that delivery. Retaining it after cleanup is unsupported.",
      "Property: die": "Starts delivery of one unexpected defect and returns the delivery fiber.",
      "Property: die: Why": "Programming defects remain outside the typed `E` channel.",
      "Property: die: Ownership and lifetime": "The active callback scope owns the returned fiber. The value is wrapped with\n`Cause.die` and forwarded to the sink.",
      "Property: done": "Requests early completion and returns the sink's early-exit fiber.",
      "Property: done: Why": "Finite callback APIs need an explicit completion signal distinct from failure.",
      "Property: done: Ownership and lifetime": "The active callback scope owns the returned fiber. Early exit ends the run and\ncauses callback cleanup registered by `callback` to execute.",
      "Property: fail": "Starts delivery of one typed failure and returns the delivery fiber.",
      "Property: fail: Why": "Expected callback errors enter `E` without being converted to defects.",
      "Property: fail: Ownership and lifetime": "The active callback scope owns the returned fiber. The error is wrapped with\n`Cause.fail` and forwarded to the sink.",
      "Property: failCause": "Starts delivery of a complete Effect `Cause` and returns the delivery fiber.",
      "Property: failCause: Why": "Typed failures, defects, and interruption remain structurally distinct.",
      "Property: failCause: Ownership and lifetime": "The active callback scope owns the returned fiber. This operation does not\nautomatically call `done`; terminal behavior is determined by the sink.",
      "Property: succeed": "Starts delivery of one value and returns the delivery fiber.",
      "Property: succeed: Why": "Callback producers push values when they arrive instead of waiting to be pulled.",
      "Property: succeed: Ownership and lifetime": "The active callback scope owns the returned fiber; deliveries can overlap when\n`succeed` is called again before an earlier sink Effect completes."
    },
    "examples": [],
    "sourceSpans": [
      {
        "file": "packages/fx/src/Fx/constructors/make.ts",
        "start": {
          "line": 91,
          "column": 1
        },
        "end": {
          "line": 177,
          "column": 3
        }
      },
      {
        "file": "packages/fx/src/Fx/constructors/make.ts",
        "start": {
          "line": 159,
          "column": 3
        },
        "end": {
          "line": 159,
          "column": 50
        }
      },
      {
        "file": "packages/fx/src/Fx/constructors/make.ts",
        "start": {
          "line": 176,
          "column": 3
        },
        "end": {
          "line": 176,
          "column": 37
        }
      },
      {
        "file": "packages/fx/src/Fx/constructors/make.ts",
        "start": {
          "line": 142,
          "column": 3
        },
        "end": {
          "line": 142,
          "column": 45
        }
      },
      {
        "file": "packages/fx/src/Fx/constructors/make.ts",
        "start": {
          "line": 125,
          "column": 3
        },
        "end": {
          "line": 125,
          "column": 63
        }
      },
      {
        "file": "packages/fx/src/Fx/constructors/make.ts",
        "start": {
          "line": 108,
          "column": 3
        },
        "end": {
          "line": 108,
          "column": 48
        }
      }
    ],
    "since": "1.0.0",
    "category": "Callback protocol"
  }
}
