{
  "id": "@typed/navigation/memory#InitialMemoryOptions",
  "canonicalId": "@typed/navigation#InitialMemoryOptions",
  "symbol": {
    "id": "@typed/navigation/memory#InitialMemoryOptions",
    "packageName": "@typed/navigation",
    "moduleName": "memory",
    "exportName": "InitialMemoryOptions",
    "kind": "interface",
    "signatures": [
      "export interface InitialMemoryOptions {\n    readonly url: string | URL;\n    readonly origin?: string | undefined;\n    readonly base?: string | undefined;\n    readonly maxEntries?: number | undefined;\n    readonly state?: unknown;\n}"
    ],
    "summary": "Configures an in-memory provider from one initial URL.",
    "sections": {
      "Why": "Most SSR and tests begin from one location and should not manufacture destination identity by\nhand; this form creates its key and id through `Uuid7State`.",
      "Ownership and lifetime": "The resulting Layer allocates one initial entry and delegates ownership to {@link memory} for the\nlifetime of the provided Navigation service.",
      "Property: base": "The structural base path exposed by the active provider.",
      "Property: base: Why": "Routers can establish a stable mount root separately from the changing current URL.",
      "Property: base: Ownership and lifetime": "The string is read during acquisition and retained on the Navigation service.",
      "Property: maxEntries": "The positive maximum number of history entries retained by the provider.",
      "Property: maxEntries: Why": "A positive bound makes eviction deterministic while the one generated initial entry always\nremains inside the retained tail.",
      "Property: maxEntries: Ownership and lifetime": "The number is forwarded to {@link memory} and must be greater than zero. No validation enforces\nthat contract. `0` currently retains all entries because `slice(-0)` is `slice(0)`, so it does\nnot disable history retention.",
      "Property: origin": "The absolute origin used to resolve relative destinations.",
      "Property: origin: Why": "A single origin makes same-document classification and URL normalization consistent across providers.",
      "Property: origin: Ownership and lifetime": "The string is read during acquisition and retained on the Navigation service.",
      "Property: state": "Application state stored with a committed destination.",
      "Property: state: Why": "Persistent entry data stays distinct from transient handler information.",
      "Property: state: Ownership and lifetime": "The value is retained by reference on the initial Destination. Callers own any mutable object\nplaced here and should replace rather than mutate it when deterministic history snapshots matter.",
      "Property: url": "The initial URL or path for a one-entry memory provider.",
      "Property: url: Why": "Callers can start SSR or tests without constructing destination identity manually.",
      "Property: url: Ownership and lifetime": "Layer acquisition resolves this value and stores the resulting URL object on the initial Destination."
    },
    "examples": [],
    "relations": [],
    "source": {
      "file": "packages/navigation/src/memory.ts",
      "line": 148
    },
    "since": "1.0.0",
    "category": "Memory history configuration"
  },
  "exposure": {
    "recordKind": "declaration",
    "id": "@typed/navigation/memory#InitialMemoryOptions",
    "packageName": "@typed/navigation",
    "packageVersion": "1.0.0-beta.7",
    "moduleName": "memory",
    "consumerSpecifier": "@typed/navigation/memory",
    "exportName": "InitialMemoryOptions",
    "qualifiedName": "InitialMemoryOptions",
    "declarationKey": "declaration:561b8f9e28e40c09c03be9ea",
    "family": "interface",
    "signatures": [
      "export interface InitialMemoryOptions {\n    readonly url: string | URL;\n    readonly origin?: string | undefined;\n    readonly base?: string | undefined;\n    readonly maxEntries?: number | undefined;\n    readonly state?: unknown;\n}"
    ],
    "sourceSpans": [
      {
        "file": "packages/navigation/src/memory.ts",
        "start": {
          "line": 148,
          "column": 1
        },
        "end": {
          "line": 223,
          "column": 2
        }
      },
      {
        "file": "packages/navigation/src/memory.ts",
        "start": {
          "line": 190,
          "column": 3
        },
        "end": {
          "line": 190,
          "column": 38
        }
      },
      {
        "file": "packages/navigation/src/memory.ts",
        "start": {
          "line": 207,
          "column": 3
        },
        "end": {
          "line": 207,
          "column": 44
        }
      },
      {
        "file": "packages/navigation/src/memory.ts",
        "start": {
          "line": 176,
          "column": 3
        },
        "end": {
          "line": 176,
          "column": 40
        }
      },
      {
        "file": "packages/navigation/src/memory.ts",
        "start": {
          "line": 222,
          "column": 3
        },
        "end": {
          "line": 222,
          "column": 28
        }
      },
      {
        "file": "packages/navigation/src/memory.ts",
        "start": {
          "line": 162,
          "column": 3
        },
        "end": {
          "line": 162,
          "column": 30
        }
      }
    ],
    "aliases": [
      "@typed/navigation#InitialMemoryOptions"
    ],
    "isAlias": false,
    "static": false
  },
  "declaration": {
    "declarationKey": "declaration:561b8f9e28e40c09c03be9ea",
    "name": "InitialMemoryOptions",
    "family": "interface",
    "facets": [
      {
        "family": "interface",
        "syntaxKind": "InterfaceDeclaration",
        "signatures": [
          "export interface InitialMemoryOptions {\n    readonly url: string | URL;\n    readonly origin?: string | undefined;\n    readonly base?: string | undefined;\n    readonly maxEntries?: number | undefined;\n    readonly state?: unknown;\n}"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/navigation/src/memory.ts",
            "start": {
              "line": 148,
              "column": 1
            },
            "end": {
              "line": 223,
              "column": 2
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "readonly base?: string | undefined;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/navigation/src/memory.ts",
            "start": {
              "line": 190,
              "column": 3
            },
            "end": {
              "line": 190,
              "column": 38
            }
          }
        ],
        "static": false,
        "readonly": true,
        "optional": true
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "readonly maxEntries?: number | undefined;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/navigation/src/memory.ts",
            "start": {
              "line": 207,
              "column": 3
            },
            "end": {
              "line": 207,
              "column": 44
            }
          }
        ],
        "static": false,
        "readonly": true,
        "optional": true
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "readonly origin?: string | undefined;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/navigation/src/memory.ts",
            "start": {
              "line": 176,
              "column": 3
            },
            "end": {
              "line": 176,
              "column": 40
            }
          }
        ],
        "static": false,
        "readonly": true,
        "optional": true
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "readonly state?: unknown;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/navigation/src/memory.ts",
            "start": {
              "line": 222,
              "column": 3
            },
            "end": {
              "line": 222,
              "column": 28
            }
          }
        ],
        "static": false,
        "readonly": true,
        "optional": true
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "readonly url: string | URL;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/navigation/src/memory.ts",
            "start": {
              "line": 162,
              "column": 3
            },
            "end": {
              "line": 162,
              "column": 30
            }
          }
        ],
        "static": false,
        "readonly": true,
        "optional": false
      }
    ],
    "signatures": [
      "export interface InitialMemoryOptions {\n    readonly url: string | URL;\n    readonly origin?: string | undefined;\n    readonly base?: string | undefined;\n    readonly maxEntries?: number | undefined;\n    readonly state?: unknown;\n}"
    ],
    "typeParameters": [],
    "summary": "Configures an in-memory provider from one initial URL.",
    "sections": {
      "Why": "Most SSR and tests begin from one location and should not manufacture destination identity by\nhand; this form creates its key and id through `Uuid7State`.",
      "Ownership and lifetime": "The resulting Layer allocates one initial entry and delegates ownership to {@link memory} for the\nlifetime of the provided Navigation service.",
      "Property: base": "The structural base path exposed by the active provider.",
      "Property: base: Why": "Routers can establish a stable mount root separately from the changing current URL.",
      "Property: base: Ownership and lifetime": "The string is read during acquisition and retained on the Navigation service.",
      "Property: maxEntries": "The positive maximum number of history entries retained by the provider.",
      "Property: maxEntries: Why": "A positive bound makes eviction deterministic while the one generated initial entry always\nremains inside the retained tail.",
      "Property: maxEntries: Ownership and lifetime": "The number is forwarded to {@link memory} and must be greater than zero. No validation enforces\nthat contract. `0` currently retains all entries because `slice(-0)` is `slice(0)`, so it does\nnot disable history retention.",
      "Property: origin": "The absolute origin used to resolve relative destinations.",
      "Property: origin: Why": "A single origin makes same-document classification and URL normalization consistent across providers.",
      "Property: origin: Ownership and lifetime": "The string is read during acquisition and retained on the Navigation service.",
      "Property: state": "Application state stored with a committed destination.",
      "Property: state: Why": "Persistent entry data stays distinct from transient handler information.",
      "Property: state: Ownership and lifetime": "The value is retained by reference on the initial Destination. Callers own any mutable object\nplaced here and should replace rather than mutate it when deterministic history snapshots matter.",
      "Property: url": "The initial URL or path for a one-entry memory provider.",
      "Property: url: Why": "Callers can start SSR or tests without constructing destination identity manually.",
      "Property: url: Ownership and lifetime": "Layer acquisition resolves this value and stores the resulting URL object on the initial Destination."
    },
    "examples": [],
    "sourceSpans": [
      {
        "file": "packages/navigation/src/memory.ts",
        "start": {
          "line": 148,
          "column": 1
        },
        "end": {
          "line": 223,
          "column": 2
        }
      },
      {
        "file": "packages/navigation/src/memory.ts",
        "start": {
          "line": 190,
          "column": 3
        },
        "end": {
          "line": 190,
          "column": 38
        }
      },
      {
        "file": "packages/navigation/src/memory.ts",
        "start": {
          "line": 207,
          "column": 3
        },
        "end": {
          "line": 207,
          "column": 44
        }
      },
      {
        "file": "packages/navigation/src/memory.ts",
        "start": {
          "line": 176,
          "column": 3
        },
        "end": {
          "line": 176,
          "column": 40
        }
      },
      {
        "file": "packages/navigation/src/memory.ts",
        "start": {
          "line": 222,
          "column": 3
        },
        "end": {
          "line": 222,
          "column": 28
        }
      },
      {
        "file": "packages/navigation/src/memory.ts",
        "start": {
          "line": 162,
          "column": 3
        },
        "end": {
          "line": 162,
          "column": 30
        }
      }
    ],
    "since": "1.0.0",
    "category": "Memory history configuration"
  }
}
