# Public API reference

This reference is generated from the installed, version-pinned **3.0.0** packages. It enumerates the exports TypeScript resolves from each public package entry point, including overloads, generic parameters, option types, return types and the documentation shipped with those declarations. It does not infer APIs from private source files.

## TypeScript entry points

- [`@getforma/core`](/docs/3.0/api-core/) — Signals, ownership, DOM construction, keyed lists, islands and browser utilities.
- [`@getforma/core/runtime`](/docs/3.0/api-runtime/) — Explicit HTML runtime mounts, grants, diagnostics and scope inspection.
- [`@getforma/core/runtime-hardened`](/docs/3.0/api-runtime-hardened/) — The hardened HTML runtime entry point and its published mount contract.
- [`@getforma/core/runtime-csp`](/docs/3.0/api-runtime-csp/) — The runtime-csp package export aliases the hardened runtime.
- [`@getforma/core/tc39`](/docs/3.0/api-tc39/) — The optional class-based State and Computed compatibility API.
- [`@getforma/core/http`](/docs/3.0/api-http/) — Reactive fetch, server-sent events and WebSocket clients with their option and result types.
- [`@getforma/core/storage`](/docs/3.0/api-storage/) — Typed localStorage, sessionStorage and IndexedDB wrappers.
- [`@getforma/compiler`](/docs/3.0/api-compiler/) — The native compiler's esbuild plugin, diagnostics, declared schemas and FMIR utilities.
- [`@getforma/build`](/docs/3.0/api-build/) — The build function, application configuration, manifests and size-report types.
- [`JSX namespace`](/docs/3.0/api-jsx/) — Global JSX element and reactive attribute types included by @getforma/core.

## Reading a declaration

Import a value or exported type from the entry point shown on its page. A referenced type explains a signature without claiming an additional named export. The JSX page describes a global namespace loaded by core. Symbols marked internal are shipped for framework/compiler integration, not recommended application APIs. A generic type argument documents an expected shape; it is not runtime input validation.

Each page links to the exact package declaration. The coordinated release source is [2006423b](https://github.com/getforma-dev/forma/tree/2006423b21fe0f8dd5a510bd09bfe3b8748327a5). This reference covers the ESM TypeScript entry points; CommonJS conditions use their published companion declarations.

## Rust API reference

The native crates publish their generated API documentation separately, pinned here to the same 3.0.0 release:

- [forma-server 3.0.0](https://docs.rs/forma-server/3.0.0/forma_server/) — page binding, responses, assets and Axum integration.
- [forma-ir 3.0.0](https://docs.rs/forma-ir/3.0.0/forma_ir/) — the native representation, declared schemas and renderer.
- [forma-ir-derive 3.0.0](https://docs.rs/forma-ir-derive/3.0.0/forma_ir_derive/) — the PageProps derive macro.

Start with the [server guide](/docs/3.0/server/) and [declared props](/docs/3.0/declared-props/) for a connected usage example.

## Guides and runnable examples

For an introduction, read the [core guide](/docs/3.0/core-api/), [HTML runtime guide](/docs/3.0/html-runtime/) or [build guide](/docs/3.0/build/). The [playground](/play/) runs browser examples; the [native lab](/lab/native/) demonstrates request-time Rust rendering. The browser playground supplies core's root entry point; its import allowlist does not currently include the HTTP, storage or runtime subpaths.