{
  "id": "@typed/fx/Fx#Bounds",
  "canonicalId": "@typed/fx/Fx#Bounds",
  "symbol": {
    "id": "@typed/fx/Fx#Bounds",
    "packageName": "@typed/fx",
    "moduleName": "Fx",
    "exportName": "Bounds",
    "kind": "interface",
    "signatures": [
      "export interface Bounds {\n    readonly skip: number;\n    readonly take: number;\n}"
    ],
    "summary": "Defines the bounds for slicing an Fx stream.",
    "sections": {
      "Why": "`Bounds` keeps the two independent slice decisions explicit: `skip` counts discarded prefix\nvalues and `take` bounds the following output.",
      "Ownership and lifetime": "This immutable model acquires no resources. A consumer decides how to normalize unusual numeric\nvalues when applying it.",
      "Property: skip": "Number of source values discarded before the slice can emit.",
      "Property: skip: Why": "Keeping the prefix count separate from `take` permits windows that begin anywhere in a source.",
      "Property: skip: Ownership and lifetime": "This number stores no state and acquires no resources; `slice` copies it into a per-run counter.",
      "Property: take": "Maximum number of values emitted after the skipped prefix.",
      "Property: take: Why": "The output bound makes early completion explicit without buffering the selected values.",
      "Property: take: Ownership and lifetime": "This number stores no state and acquires no resources; `slice` owns the corresponding counter\nonly for the duration of one run."
    },
    "examples": [
      {
        "language": "ts",
        "code": "import type { Fx } from \"@typed/fx\"\n\nconst page: Fx.Bounds = { skip: 20, take: 10 }"
      },
      {
        "language": "ts",
        "code": "import type { Fx } from \"@typed/fx\"\nconst bounds: Fx.Bounds = { skip: 2, take: 1 }"
      },
      {
        "language": "ts",
        "code": "import type { Fx } from \"@typed/fx\"\nconst bounds: Fx.Bounds = { skip: 0, take: 10 }"
      }
    ],
    "relations": [],
    "source": {
      "file": "packages/fx/src/Fx/combinators/slice.ts",
      "line": 29
    },
    "since": "1.0.0",
    "category": "Operator options"
  },
  "exposure": {
    "recordKind": "declaration",
    "id": "@typed/fx/Fx#Bounds",
    "packageName": "@typed/fx",
    "packageVersion": "2.0.0-beta.13",
    "moduleName": "Fx",
    "consumerSpecifier": "@typed/fx/Fx",
    "exportName": "Bounds",
    "qualifiedName": "Bounds",
    "declarationKey": "declaration:07e88e6c02947c1a22acd1e4",
    "family": "interface",
    "signatures": [
      "export interface Bounds {\n    readonly skip: number;\n    readonly take: number;\n}"
    ],
    "sourceSpans": [
      {
        "file": "packages/fx/src/Fx/combinators/slice.ts",
        "start": {
          "line": 29,
          "column": 1
        },
        "end": {
          "line": 65,
          "column": 2
        }
      },
      {
        "file": "packages/fx/src/Fx/combinators/slice.ts",
        "start": {
          "line": 46,
          "column": 3
        },
        "end": {
          "line": 46,
          "column": 25
        }
      },
      {
        "file": "packages/fx/src/Fx/combinators/slice.ts",
        "start": {
          "line": 64,
          "column": 3
        },
        "end": {
          "line": 64,
          "column": 25
        }
      }
    ],
    "aliases": [
      "@typed/fx#Fx.Bounds"
    ],
    "isAlias": false,
    "static": false
  },
  "declaration": {
    "declarationKey": "declaration:07e88e6c02947c1a22acd1e4",
    "name": "Bounds",
    "family": "interface",
    "facets": [
      {
        "family": "interface",
        "syntaxKind": "InterfaceDeclaration",
        "signatures": [
          "export interface Bounds {\n    readonly skip: number;\n    readonly take: number;\n}"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/fx/src/Fx/combinators/slice.ts",
            "start": {
              "line": 29,
              "column": 1
            },
            "end": {
              "line": 65,
              "column": 2
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "readonly skip: number;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/fx/src/Fx/combinators/slice.ts",
            "start": {
              "line": 46,
              "column": 3
            },
            "end": {
              "line": 46,
              "column": 25
            }
          }
        ],
        "static": false,
        "readonly": true,
        "optional": false
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "readonly take: number;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/fx/src/Fx/combinators/slice.ts",
            "start": {
              "line": 64,
              "column": 3
            },
            "end": {
              "line": 64,
              "column": 25
            }
          }
        ],
        "static": false,
        "readonly": true,
        "optional": false
      }
    ],
    "signatures": [
      "export interface Bounds {\n    readonly skip: number;\n    readonly take: number;\n}"
    ],
    "typeParameters": [],
    "summary": "Defines the bounds for slicing an Fx stream.",
    "sections": {
      "Why": "`Bounds` keeps the two independent slice decisions explicit: `skip` counts discarded prefix\nvalues and `take` bounds the following output.",
      "Ownership and lifetime": "This immutable model acquires no resources. A consumer decides how to normalize unusual numeric\nvalues when applying it.",
      "Property: skip": "Number of source values discarded before the slice can emit.",
      "Property: skip: Why": "Keeping the prefix count separate from `take` permits windows that begin anywhere in a source.",
      "Property: skip: Ownership and lifetime": "This number stores no state and acquires no resources; `slice` copies it into a per-run counter.",
      "Property: take": "Maximum number of values emitted after the skipped prefix.",
      "Property: take: Why": "The output bound makes early completion explicit without buffering the selected values.",
      "Property: take: Ownership and lifetime": "This number stores no state and acquires no resources; `slice` owns the corresponding counter\nonly for the duration of one run."
    },
    "examples": [
      {
        "language": "ts",
        "code": "import type { Fx } from \"@typed/fx\"\n\nconst page: Fx.Bounds = { skip: 20, take: 10 }"
      },
      {
        "language": "ts",
        "code": "import type { Fx } from \"@typed/fx\"\nconst bounds: Fx.Bounds = { skip: 2, take: 1 }"
      },
      {
        "language": "ts",
        "code": "import type { Fx } from \"@typed/fx\"\nconst bounds: Fx.Bounds = { skip: 0, take: 10 }"
      }
    ],
    "sourceSpans": [
      {
        "file": "packages/fx/src/Fx/combinators/slice.ts",
        "start": {
          "line": 29,
          "column": 1
        },
        "end": {
          "line": 65,
          "column": 2
        }
      },
      {
        "file": "packages/fx/src/Fx/combinators/slice.ts",
        "start": {
          "line": 46,
          "column": 3
        },
        "end": {
          "line": 46,
          "column": 25
        }
      },
      {
        "file": "packages/fx/src/Fx/combinators/slice.ts",
        "start": {
          "line": 64,
          "column": 3
        },
        "end": {
          "line": 64,
          "column": 25
        }
      }
    ],
    "since": "1.0.0",
    "category": "Operator options"
  }
}
