{
  "id": "@typed/fx#Fx.delay",
  "canonicalId": "@typed/fx/Fx#delay",
  "symbol": {
    "id": "@typed/fx#Fx.delay",
    "packageName": "@typed/fx",
    "moduleName": ".",
    "exportName": "Fx.delay",
    "kind": "constant",
    "signatures": [
      "export declare const delay: {\n    (duration: Duration.Input): <A, E, R>(self: Fx<A, E, R>) => Fx<A, E, R>;\n    <A, E, R>(self: Fx<A, E, R>, duration: Duration.Input): Fx<A, E, R>;\n};"
    ],
    "summary": "Sleeps for `duration` before forwarding each successful source delivery.",
    "sections": {
      "Why": "Per-value delay is useful when pacing downstream work without changing the\nstream's error type or replacing the producer.",
      "Ownership and lifetime": "Each delivered value runs an Effect sleep before reaching the sink. This uses\n`mapEffect` and inherits producer concurrency: a sequential producer waits for\neach delayed delivery, while concurrent deliveries can overlap their sleeps.\nNo queue or ordering guarantee is added. The source run must await its pending\ndeliveries before normal completion. Source failures propagate; interruption\ncancels active sleeps. No external resource is retained."
    },
    "examples": [
      {
        "language": "ts",
        "code": "import { delay } from \"@typed/fx/Fx\"\nimport { fromIterable } from \"@typed/fx/Fx\"\n\nconst paced = delay(fromIterable([1, 2, 3]), \"100 millis\")"
      }
    ],
    "relations": [],
    "source": {
      "file": "packages/fx/src/Fx/combinators/delay.ts",
      "line": 35
    },
    "since": "1.0.0",
    "category": "Time and rate"
  },
  "exposure": {
    "recordKind": "declaration",
    "id": "@typed/fx#Fx.delay",
    "packageName": "@typed/fx",
    "packageVersion": "2.0.0-beta.13",
    "moduleName": ".",
    "consumerSpecifier": "@typed/fx",
    "exportName": "Fx",
    "qualifiedName": "Fx.delay",
    "declarationKey": "declaration:cfb28f680400ed9898c7bd0a",
    "family": "variable",
    "signatures": [
      "export declare const delay: {\n    (duration: Duration.Input): <A, E, R>(self: Fx<A, E, R>) => Fx<A, E, R>;\n    <A, E, R>(self: Fx<A, E, R>, duration: Duration.Input): Fx<A, E, R>;\n};"
    ],
    "sourceSpans": [
      {
        "file": "packages/fx/src/Fx/combinators/delay.ts",
        "start": {
          "line": 35,
          "column": 14
        },
        "end": {
          "line": 40,
          "column": 2
        }
      },
      {
        "file": "packages/fx/src/Fx/combinators/delay.ts",
        "start": {
          "line": 36,
          "column": 3
        },
        "end": {
          "line": 36,
          "column": 75
        }
      },
      {
        "file": "packages/fx/src/Fx/combinators/delay.ts",
        "start": {
          "line": 37,
          "column": 3
        },
        "end": {
          "line": 37,
          "column": 71
        }
      }
    ],
    "aliases": [
      "@typed/fx/Fx#delay"
    ],
    "isAlias": true,
    "parentId": "@typed/fx#Fx",
    "static": false,
    "importedFrom": "declaration:cfb28f680400ed9898c7bd0a"
  },
  "declaration": {
    "declarationKey": "declaration:cfb28f680400ed9898c7bd0a",
    "name": "delay",
    "family": "variable",
    "facets": [
      {
        "family": "variable",
        "syntaxKind": "VariableDeclaration",
        "signatures": [
          "export declare const delay: {\n    (duration: Duration.Input): <A, E, R>(self: Fx<A, E, R>) => Fx<A, E, R>;\n    <A, E, R>(self: Fx<A, E, R>, duration: Duration.Input): Fx<A, E, R>;\n};"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/fx/src/Fx/combinators/delay.ts",
            "start": {
              "line": 35,
              "column": 14
            },
            "end": {
              "line": 40,
              "column": 2
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      },
      {
        "family": "call-signature",
        "syntaxKind": "CallSignature",
        "signatures": [
          "(duration: Duration.Input): <A, E, R>(self: Fx<A, E, R>) => Fx<A, E, R>;",
          "<A, E, R>(self: Fx<A, E, R>, duration: Duration.Input): Fx<A, E, R>;"
        ],
        "typeParameters": [
          "A",
          "E",
          "R"
        ],
        "sourceSpans": [
          {
            "file": "packages/fx/src/Fx/combinators/delay.ts",
            "start": {
              "line": 36,
              "column": 3
            },
            "end": {
              "line": 36,
              "column": 75
            }
          },
          {
            "file": "packages/fx/src/Fx/combinators/delay.ts",
            "start": {
              "line": 37,
              "column": 3
            },
            "end": {
              "line": 37,
              "column": 71
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      }
    ],
    "signatures": [
      "export declare const delay: {\n    (duration: Duration.Input): <A, E, R>(self: Fx<A, E, R>) => Fx<A, E, R>;\n    <A, E, R>(self: Fx<A, E, R>, duration: Duration.Input): Fx<A, E, R>;\n};"
    ],
    "typeParameters": [
      "A",
      "E",
      "R"
    ],
    "summary": "Sleeps for `duration` before forwarding each successful source delivery.",
    "sections": {
      "Why": "Per-value delay is useful when pacing downstream work without changing the\nstream's error type or replacing the producer.",
      "Ownership and lifetime": "Each delivered value runs an Effect sleep before reaching the sink. This uses\n`mapEffect` and inherits producer concurrency: a sequential producer waits for\neach delayed delivery, while concurrent deliveries can overlap their sleeps.\nNo queue or ordering guarantee is added. The source run must await its pending\ndeliveries before normal completion. Source failures propagate; interruption\ncancels active sleeps. No external resource is retained."
    },
    "examples": [
      {
        "language": "ts",
        "code": "import { delay } from \"@typed/fx/Fx\"\nimport { fromIterable } from \"@typed/fx/Fx\"\n\nconst paced = delay(fromIterable([1, 2, 3]), \"100 millis\")"
      }
    ],
    "sourceSpans": [
      {
        "file": "packages/fx/src/Fx/combinators/delay.ts",
        "start": {
          "line": 35,
          "column": 14
        },
        "end": {
          "line": 40,
          "column": 2
        }
      },
      {
        "file": "packages/fx/src/Fx/combinators/delay.ts",
        "start": {
          "line": 36,
          "column": 3
        },
        "end": {
          "line": 36,
          "column": 75
        }
      },
      {
        "file": "packages/fx/src/Fx/combinators/delay.ts",
        "start": {
          "line": 37,
          "column": 3
        },
        "end": {
          "line": 37,
          "column": 71
        }
      }
    ],
    "since": "1.0.0",
    "category": "Time and rate"
  }
}
