Public API map
The public contract is defined by the package export map and source barrels. Import
from @ovok/native or a documented @ovok/native/<module> subpath. Do not import
from src/ or generated lib/ paths.
Root and subpath imports
The entry-point table below is generated from package.json, src/index.tsx, and
the module barrels under src/modules. Run yarn docs:generate after changing
package exports or adding a module. The module feature guides remain hand-written:
see App UI and Reusable flows for the UI surfaces.
| Surface | Import path | Also exported from root | Source entry |
|---|---|---|---|
| SDK root | @ovok/native | — | src/index.tsx |
| auth | @ovok/native/auth | Yes | src/modules/auth/index.tsx |
| background-sync | @ovok/native/background-sync | No | src/modules/background-sync/index.ts |
| breathing-exercise | @ovok/native/breathing-exercise | No | src/modules/breathing-exercise/index.ts |
| bt-device | @ovok/native/bt-device | No | src/modules/bt-device/index.ts |
| bt-device-instructions | @ovok/native/bt-device-instructions | No | src/modules/bt-device-instructions/index.ts |
| bt-management | @ovok/native/bt-management | Yes | src/modules/bt-management/index.ts |
| cms | @ovok/native/cms | Yes | src/modules/cms/index.ts |
| content | @ovok/native/content | Yes | src/modules/content/index.ts |
| data-sync | @ovok/native/data-sync | No | src/modules/data-sync/index.ts |
| diary | @ovok/native/diary | Yes | src/modules/diary/index.ts |
| helpers | @ovok/native/helpers | Yes | src/modules/helpers/index.tsx |
| image | @ovok/native/image | No | src/modules/image/index.ts |
| journal | @ovok/native/journal | Yes | src/modules/journal/index.ts |
| language-switcher | @ovok/native/language-switcher | Yes | src/modules/language-switcher/index.ts |
| measurement | @ovok/native/measurement | Yes | src/modules/measurement/index.ts |
| observation-detail | @ovok/native/observation-detail | Yes | src/modules/observation-detail/index.ts |
| patient | @ovok/native/patient | Yes | src/modules/patient/index.ts |
@ovok/native/pdf | No | src/modules/pdf/index.ts | |
| picker-sheet | @ovok/native/picker-sheet | No | src/modules/picker-sheet/index.ts |
| progress-bar | @ovok/native/progress-bar | Yes | src/modules/progress-bar/index.ts |
| progress-ring | @ovok/native/progress-ring | Yes | src/modules/progress-ring/index.ts |
| questionnaire-response-form | @ovok/native/questionnaire-response-form | Yes | src/modules/questionnaire-response-form/index.ts |
| setting | @ovok/native/setting | Yes | src/modules/setting/index.ts |
| socket | @ovok/native/socket | No | src/modules/socket/index.ts |
| tab | @ovok/native/tab | Yes | src/modules/tab/index.ts |
| theme | @ovok/native/theme | Yes | src/modules/theme/index.ts |
| tile | @ovok/native/tile | Yes | src/modules/tile/index.ts |
| ui | @ovok/native/ui | No | src/modules/ui/index.ts |
| polyfills (root exports) | @ovok/native | Yes | src/polyfills/index.ts |
| polyfills | @ovok/native/polyfills | Yes | src/polyfills/index.ts |
| Package metadata | @ovok/native/package.json | No | package.json |
The package root also exports runtime helpers from polyfills, including
polyfillOvokWebAPIs, ExpoClientStorage, ExtendedExpoCrypto,
cleanupOvokNativeRuntime, and initWebSocketManager. The dedicated
@ovok/native/polyfills subpath loads only this module, so app entry code can
initialize the runtime before importing the app or other SDK modules. See
Polyfills and runtime setup for the Expo Router entry
pattern.
Root examples
import {
BTProvider,
SignIn,
ThemeProvider,
polyfillOvokWebAPIs,
} from "@ovok/native";
The root import is appropriate when the app uses the shared UI and Bluetooth management surface together. Install the peer dependencies for the imports in the application bundle.
Subpath examples
import { DataSync } from "@ovok/native/data-sync";
import { SUPPORTED_DEVICES } from "@ovok/native/bt-device";
import { ManualEntryForm } from "@ovok/native/ui";
import { PDFViewer } from "@ovok/native/pdf";
Use subpaths for optional native features, especially when the app does not use HealthKit, Health Connect, PDF rendering, background services, or the integration-flow components.
Protocol API
The bt-management index also exports lower-level protocol types and factories. They
are useful for custom integrations and tests, but are more coupled to device wire
formats than the UI APIs:
defineCustomDeviceand custom declaration types;BTManagedDevice,BTManager, and background BLE helpers;- standard GATT factories;
- boso, Visomat, Veroval, AOJ, Lepu, and Viatom declarations;
- measurement field, device status, error, and result-policy types;
- fake managers and recorded-frame helpers for tests.
Prefer the catalog and integrated-device values for normal application code. Pin and test the exact SDK version when using protocol factories.