> ## Documentation Index
> Fetch the complete documentation index at: https://docs.napps.io/llms.txt
> Use this file to discover all available pages before exploring further.

# TypeScript reference

This tab is the exact public TypeScript reference for Expresso projects. Use the [Guides](/introduction) tab for explanations and step-by-step examples; use this tab when you need a signature, accepted value, return type, or event payload.

## Choose the package

| Package                      | Use it for                                                                           | Reference                                                                |
| ---------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
| `@napps/nodes`               | React UI components, JSX nodes, styling, animation, gestures, and runtime web APIs   | [`@napps/nodes`](/typescript-reference/nodes-ui)                         |
| `@napps/component-extension` | Services, business logic extensions, data models, and native app-extension contracts | [`@napps/component-extension`](/typescript-reference/component-services) |

## Typical imports

```tsx theme={null}
import {
  BaseReactUIComponent,
  type ComponentContext,
  type RootComponentProps,
  animatedProps,
  sv
} from "@napps/nodes";

import {
  NAPPS,
  type ProductDetailHandler
} from "@napps/component-extension";
```

Some runtime APIs are ambient globals at runtime and are also exported through the package declarations for TypeScript consumers. Follow the import style used by the project template.

## Public reference boundaries

This reference includes the public authoring surface only. It intentionally excludes discovery and location APIs that are not part of the supported Expresso authoring surface, plus JNI/V8 implementation types, generated binding internals, and development-only buses.

Deprecated APIs are omitted from new examples. Existing compatibility aliases are documented only when consumers may still encounter them.

## Source of truth

The declarations are curated from the public re-exports in the NAPPS CLI packages:

* `D:\Napps\napps-cli\packages\nodes\src\index.ts`
* `D:\Napps\napps-cli\packages\component-extension\src\index.ts`
* Their generated declaration inputs under each package's `src/generated` directory.

When the CLI runs its type synchronization flow, review the affected reference page before publishing a package change.

## Coverage map

| Public area                                     | Page                                                                                  |
| ----------------------------------------------- | ------------------------------------------------------------------------------------- |
| React UI, node tree, styles, animation types    | [`@napps/nodes` UI](/typescript-reference/nodes-ui)                                   |
| Fetch, streams, WebSocket, storage, URL, timers | [`@napps/nodes` runtime](/typescript-reference/nodes-runtime)                         |
| Services and common runtime objects             | [`@napps/component-extension` services](/typescript-reference/component-services)     |
| Extension contracts and callback types          | [`@napps/component-extension` extensions](/typescript-reference/component-extensions) |
| Products, cart, metafields, and event models    | [`@napps/component-extension` models](/typescript-reference/component-models)         |

## Maintaining this reference

When a CLI declaration changes:

1. Re-run the CLI type synchronization flow.
2. Compare the public package exports with this tab.
3. Update the relevant signature, accepted values, and example together.
4. Run `mint broken-links` and a Mintlify preview before publishing.
