{
  "id": "@typed/fx/Versioned#transform",
  "canonicalId": "@typed/fx/Versioned#transform",
  "symbol": {
    "id": "@typed/fx/Versioned#transform",
    "packageName": "@typed/fx",
    "moduleName": "Versioned",
    "exportName": "transform",
    "kind": "function",
    "signatures": [
      "export declare function transform<R0, E0, A, E, R, B, E2, R2, C, E3, R3, D, E4, R4>(input: Versioned<R0, E0, A, E, R, B, E2, R2>, transformFx: (fx: Fx.Fx<A, E, R>) => Fx.Fx<C, E3, R3>, transformGet: (effect: Effect.Effect<B, E2, R2>) => Effect.Effect<D, E4, R4>): Versioned<never, never, C, E3, R3, D, E0 | E4, R0 | R4>;"
    ],
    "summary": "Transforms a Versioned value into another Versioned value.",
    "sections": {
      "Why": "Transforms the pushed and sampled channels together while retaining one version source, so both\nways of consuming the value stay coherent.",
      "Ownership and lifetime": "transform does not take ownership of its inputs. Its observation and current-read channels\nretain upstream lifetime, typed failures, services, and interruption behavior.\nSampled projections and in-flight reads are cached separately for each Effect Context object.\nInterrupting a transformed value affects the current Context's in-flight read."
    },
    "examples": [],
    "relations": [],
    "source": {
      "file": "packages/fx/src/Versioned/Versioned.ts",
      "line": 408
    },
    "since": "1.0.0",
    "category": "Channel transformations"
  },
  "exposure": {
    "recordKind": "declaration",
    "id": "@typed/fx/Versioned#transform",
    "packageName": "@typed/fx",
    "packageVersion": "2.0.0-beta.7",
    "moduleName": "Versioned",
    "consumerSpecifier": "@typed/fx/Versioned",
    "exportName": "transform",
    "qualifiedName": "transform",
    "declarationKey": "declaration:562e3fd7667faf685084ef83",
    "family": "function",
    "signatures": [
      "export declare function transform<R0, E0, A, E, R, B, E2, R2, C, E3, R3, D, E4, R4>(input: Versioned<R0, E0, A, E, R, B, E2, R2>, transformFx: (fx: Fx.Fx<A, E, R>) => Fx.Fx<C, E3, R3>, transformGet: (effect: Effect.Effect<B, E2, R2>) => Effect.Effect<D, E4, R4>): Versioned<never, never, C, E3, R3, D, E0 | E4, R0 | R4>;"
    ],
    "sourceSpans": [
      {
        "file": "packages/fx/src/Versioned/Versioned.ts",
        "start": {
          "line": 408,
          "column": 1
        },
        "end": {
          "line": 422,
          "column": 2
        }
      }
    ],
    "aliases": [
      "@typed/fx#Versioned.transform"
    ],
    "isAlias": false,
    "static": false
  },
  "declaration": {
    "declarationKey": "declaration:562e3fd7667faf685084ef83",
    "name": "transform",
    "family": "function",
    "facets": [
      {
        "family": "function",
        "syntaxKind": "FunctionDeclaration",
        "signatures": [
          "export declare function transform<R0, E0, A, E, R, B, E2, R2, C, E3, R3, D, E4, R4>(input: Versioned<R0, E0, A, E, R, B, E2, R2>, transformFx: (fx: Fx.Fx<A, E, R>) => Fx.Fx<C, E3, R3>, transformGet: (effect: Effect.Effect<B, E2, R2>) => Effect.Effect<D, E4, R4>): Versioned<never, never, C, E3, R3, D, E0 | E4, R0 | R4>;"
        ],
        "typeParameters": [
          "R0",
          "E0",
          "A",
          "E",
          "R",
          "B",
          "E2",
          "R2",
          "C",
          "E3",
          "R3",
          "D",
          "E4",
          "R4"
        ],
        "sourceSpans": [
          {
            "file": "packages/fx/src/Versioned/Versioned.ts",
            "start": {
              "line": 408,
              "column": 1
            },
            "end": {
              "line": 422,
              "column": 2
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      }
    ],
    "signatures": [
      "export declare function transform<R0, E0, A, E, R, B, E2, R2, C, E3, R3, D, E4, R4>(input: Versioned<R0, E0, A, E, R, B, E2, R2>, transformFx: (fx: Fx.Fx<A, E, R>) => Fx.Fx<C, E3, R3>, transformGet: (effect: Effect.Effect<B, E2, R2>) => Effect.Effect<D, E4, R4>): Versioned<never, never, C, E3, R3, D, E0 | E4, R0 | R4>;"
    ],
    "typeParameters": [
      "R0",
      "E0",
      "A",
      "E",
      "R",
      "B",
      "E2",
      "R2",
      "C",
      "E3",
      "R3",
      "D",
      "E4",
      "R4"
    ],
    "summary": "Transforms a Versioned value into another Versioned value.",
    "sections": {
      "Why": "Transforms the pushed and sampled channels together while retaining one version source, so both\nways of consuming the value stay coherent.",
      "Ownership and lifetime": "transform does not take ownership of its inputs. Its observation and current-read channels\nretain upstream lifetime, typed failures, services, and interruption behavior.\nSampled projections and in-flight reads are cached separately for each Effect Context object.\nInterrupting a transformed value affects the current Context's in-flight read."
    },
    "examples": [],
    "sourceSpans": [
      {
        "file": "packages/fx/src/Versioned/Versioned.ts",
        "start": {
          "line": 408,
          "column": 1
        },
        "end": {
          "line": 422,
          "column": 2
        }
      }
    ],
    "since": "1.0.0",
    "category": "Channel transformations"
  }
}
