@hipnation-truth/sdk 0.6.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/react.d.ts DELETED
@@ -1,655 +0,0 @@
1
- import * as react from 'react';
2
- import { ReactNode } from 'react';
3
- import { ConvexReactClient } from 'convex/react';
4
-
5
- /**
6
- * React hooks for Truth SDK — real-time Convex-backed data access.
7
- *
8
- * These hooks use Convex React subscriptions for live-updating data.
9
- * Must be used within a ConvexProvider (see TruthProvider).
10
- *
11
- * @example
12
- * ```tsx
13
- * import { usePatients, useAppointments } from '@hipnation-truth/sdk/react';
14
- *
15
- * function PatientList() {
16
- * const patients = usePatients({ limit: 20 });
17
- * return patients?.map(p => <div key={p._id}>{p.firstName} {p.lastName}</div>);
18
- * }
19
- * ```
20
- */
21
- interface UsePatientListOptions {
22
- search?: string;
23
- lastName?: string;
24
- limit?: number;
25
- }
26
- /**
27
- * Subscribe to a list of patients with optional search and filtering.
28
- * Returns undefined while loading, then an array of patients.
29
- */
30
- declare function usePatients(options?: UsePatientListOptions): any;
31
- /**
32
- * Subscribe to a single patient by Convex document ID.
33
- */
34
- declare function usePatient(id: string): any;
35
- /**
36
- * Subscribe to a patient by their Elation ID.
37
- */
38
- declare function usePatientByElationId(elationId: string): any;
39
- /**
40
- * Subscribe to a patient by their Hint ID.
41
- */
42
- declare function usePatientByHintId(hintId: string): any;
43
- interface UseAppointmentListOptions {
44
- patientId?: string;
45
- status?: string;
46
- startDate?: string;
47
- endDate?: string;
48
- limit?: number;
49
- }
50
- /**
51
- * Subscribe to a list of appointments with optional filtering.
52
- */
53
- declare function useAppointments(options?: UseAppointmentListOptions): any;
54
- /**
55
- * Subscribe to a single appointment by Convex document ID.
56
- */
57
- declare function useAppointment(id: string): any;
58
- /**
59
- * Subscribe to an appointment by its Elation ID.
60
- */
61
- declare function useAppointmentByElationId(elationId: string): any;
62
- interface Physician {
63
- _id: string;
64
- elationId: number;
65
- firstName?: string;
66
- lastName?: string;
67
- npi?: string;
68
- credentials?: string;
69
- specialties?: string[];
70
- practice?: number;
71
- email?: string;
72
- phone?: string;
73
- lastSyncedAt: string;
74
- }
75
- /**
76
- * Resolve a batch of physicians by their Elation IDs. Returns an array
77
- * of physicians that exist in Convex; missing ids are silently dropped.
78
- *
79
- * Use this to resolve medication `prescribing_physician` / appointment
80
- * physician ids to display names, avoiding the per-physician HTTP
81
- * round-trip through Truth's Elation proxy.
82
- *
83
- * Pass `undefined` (or an empty array) to skip the query — the hook
84
- * returns `undefined` until you pass a populated list.
85
- */
86
- declare function usePhysiciansByElationIds(ids: number[] | undefined): any;
87
- /**
88
- * Subscribe to a single physician by their Elation ID.
89
- */
90
- declare function usePhysicianByElationId(id: number | undefined): any;
91
- interface UsePatientMedicalOptions {
92
- /**
93
- * Base URL of the Truth API. Required to trigger the background refresh
94
- * (e.g. `https://app.truth.communication-hub.com`). If omitted, the hook
95
- * only reads from Convex and does not refresh.
96
- */
97
- apiBaseUrl?: string;
98
- /** API key used for the refresh call. */
99
- apiKey?: string;
100
- /**
101
- * If true, suppress the background refresh. Useful when you know the
102
- * data was just refreshed by another component on the page.
103
- */
104
- skipRefresh?: boolean;
105
- }
106
- /**
107
- * Composite hook that returns a patient's medical records — medications,
108
- * problems, allergies, appointments — from the Convex cache.
109
- *
110
- * On mount (and when `elationId` changes) fires a background refresh
111
- * against Truth's `/api/patients/medical/refresh` endpoint so stale data
112
- * is pulled in without blocking render. Returns cached data immediately;
113
- * Convex subscription updates the UI when refresh completes.
114
- */
115
- declare function usePatientMedical(elationId: number | undefined, options?: UsePatientMedicalOptions): {
116
- medications: unknown[] | undefined;
117
- problems: unknown[] | undefined;
118
- allergies: unknown[] | undefined;
119
- appointments: unknown[] | undefined;
120
- };
121
- interface UsePatientBasicOptions {
122
- /** Truth API base URL used for the background refresh. */
123
- apiBaseUrl?: string;
124
- /** API key for the refresh call. */
125
- apiKey?: string;
126
- /** Suppress the background refresh. */
127
- skipRefresh?: boolean;
128
- }
129
- interface UsePatientBasicResult {
130
- /**
131
- * Raw Elation patient payload (matches the shape Elation's
132
- * `/patients/{id}` returns — `first_name`, `last_name`, `phones`, etc).
133
- * Returns `undefined` while the cache miss is loading, `null` if the
134
- * patient isn't in Convex yet (first-open-after-backfill).
135
- */
136
- elationPatient: Record<string, unknown> | null | undefined;
137
- /**
138
- * Raw Hint patient payload (matches the shape Hint's
139
- * `/provider/patients/{id}` returns — `memberships`, `account`,
140
- * `phones`, etc).
141
- */
142
- hintPatient: Record<string, unknown> | null | undefined;
143
- /**
144
- * The full Convex row for Elation (includes `elationId`, `lastSyncedAt`,
145
- * `photoS3Key`, `preferredPharmacyNcpdpId`, etc). Use this when you
146
- * need the structured/typed fields rather than the raw Elation payload.
147
- */
148
- elationRow: Record<string, unknown> | null | undefined;
149
- /**
150
- * The full Convex row for Hint. Similar relationship to `hintPatient`.
151
- */
152
- hintRow: Record<string, unknown> | null | undefined;
153
- /** True while either cache miss is still pending. */
154
- loading: boolean;
155
- }
156
- /**
157
- * Composite hook returning a patient's basic details — Hint demographics
158
- * + memberships + account, Elation demographics + clinical metadata —
159
- * from the Convex cache.
160
- *
161
- * On mount (and when inputs change) fires a background refresh against
162
- * `/api/patients/basic/refresh` so stale rows get pulled fresh without
163
- * blocking render. Returns cached data immediately; Convex subscription
164
- * updates the UI when refresh completes.
165
- */
166
- declare function usePatientBasic(input: {
167
- hintId?: string;
168
- elationId?: number;
169
- }, options?: UsePatientBasicOptions): UsePatientBasicResult;
170
- /**
171
- * Read a shared pharmacy row by NCPDP id. Backs the pharmacy card in
172
- * the patient panel (from Elation's preferred_pharmacy reference).
173
- */
174
- declare function usePharmacyByNcpdpId(ncpdpId: string | undefined): any;
175
- interface UsePatientPhotoOptions {
176
- apiBaseUrl?: string;
177
- apiKey?: string;
178
- skipRefresh?: boolean;
179
- }
180
- /**
181
- * Subscribe to a patient's profile photo (s3Key + metadata). The
182
- * consumer constructs a download URL via the Truth attachments resource
183
- * (signed S3 URL). Fires a background refresh to pull the latest photo
184
- * binary from Elation + upload to S3.
185
- */
186
- declare function usePatientPhoto(elationId: number | undefined, options?: UsePatientPhotoOptions): any;
187
- interface ConversationMessage {
188
- kind: "call" | "sms";
189
- id: string;
190
- providerId: string;
191
- state: string | null;
192
- direction: string | null;
193
- fromNumber: string | null;
194
- toNumber: string | null;
195
- voicemailLink: string | null;
196
- duration: number | null;
197
- text: string | null;
198
- mms: boolean;
199
- mmsUrl: string | null;
200
- messageStatus: string | null;
201
- occurredAt: string;
202
- conversationId: string | null;
203
- patientId: string | null;
204
- }
205
- interface UseConversationMessagesOptions {
206
- /** Max items to return (default 200). */
207
- limit?: number;
208
- }
209
- /**
210
- * Subscribe to a conversation's calls + SMS merged chronologically.
211
- * Pass the patient phone + the provider phone — Truth computes a
212
- * normalized pair key server-side so formatting differences don't
213
- * matter.
214
- *
215
- * Returns `undefined` while loading, then `ConversationMessage[]`
216
- * sorted newest-first. Updates live as new webhook events land in
217
- * Convex via the kinesis consumer.
218
- */
219
- declare function useConversationMessages(input: {
220
- phoneA?: string;
221
- phoneB?: string;
222
- conversationId?: string;
223
- }, options?: UseConversationMessagesOptions): ConversationMessage[] | undefined;
224
-
225
- interface TruthProviderProps {
226
- /** Truth environment — determines which Convex deployment to connect to */
227
- environment?: string;
228
- /** Override the Convex URL directly */
229
- convexUrl?: string;
230
- children: ReactNode;
231
- }
232
- declare function TruthProvider({ environment, convexUrl, children, }: TruthProviderProps): react.FunctionComponentElement<{
233
- client: ConvexReactClient;
234
- children?: React.ReactNode;
235
- }>;
236
-
237
- /**
238
- * Typed event definitions for the Truth Platform event store.
239
- *
240
- * All 26 event types from the Communication Hub -> Truth Event Store Contract.
241
- * Events are grouped by domain and include typed payload interfaces.
242
- */
243
- declare const CONVERSATION_EVENTS: {
244
- readonly created: "conversation.created.v1";
245
- readonly messageSent: "conversation.message_sent.v1";
246
- readonly messageReceived: "conversation.message_received.v1";
247
- readonly markedRead: "conversation.marked_read.v1";
248
- readonly attachmentUploaded: "conversation.attachment_uploaded.v1";
249
- readonly attachmentDownloaded: "conversation.attachment_downloaded.v1";
250
- };
251
- declare const CALL_EVENTS: {
252
- readonly initiated: "call.initiated.v1";
253
- readonly connected: "call.connected.v1";
254
- readonly ended: "call.ended.v1";
255
- readonly missed: "call.missed.v1";
256
- };
257
- declare const TASK_EVENTS: {
258
- readonly created: "task.created.v1";
259
- readonly assigned: "task.assigned.v1";
260
- readonly statusChanged: "task.status_changed.v1";
261
- };
262
- declare const REMINDER_EVENTS: {
263
- readonly scheduled: "reminder.scheduled.v1";
264
- readonly triggered: "reminder.triggered.v1";
265
- };
266
- declare const TRANSLATION_EVENTS: {
267
- readonly requested: "translation.requested.v1";
268
- readonly completed: "translation.completed.v1";
269
- };
270
- declare const NOTIFICATION_EVENTS: {
271
- readonly sent: "notification.sent.v1";
272
- readonly delivered: "notification.delivered.v1";
273
- readonly opened: "notification.opened.v1";
274
- };
275
- declare const PROVIDER_EVENTS: {
276
- readonly syncStarted: "provider.sync_started.v1";
277
- readonly syncSucceeded: "provider.sync_succeeded.v1";
278
- readonly syncFailed: "provider.sync_failed.v1";
279
- };
280
- declare const AUTH_EVENTS: {
281
- readonly loginSucceeded: "auth.login_succeeded.v1";
282
- readonly loginFailed: "auth.login_failed.v1";
283
- };
284
- declare const SECURITY_EVENTS: {
285
- readonly accessDenied: "security.access_denied.v1";
286
- };
287
- type ConversationEventType = (typeof CONVERSATION_EVENTS)[keyof typeof CONVERSATION_EVENTS];
288
- type CallEventType = (typeof CALL_EVENTS)[keyof typeof CALL_EVENTS];
289
- type TaskEventType = (typeof TASK_EVENTS)[keyof typeof TASK_EVENTS];
290
- type ReminderEventType = (typeof REMINDER_EVENTS)[keyof typeof REMINDER_EVENTS];
291
- type TranslationEventType = (typeof TRANSLATION_EVENTS)[keyof typeof TRANSLATION_EVENTS];
292
- type NotificationEventType = (typeof NOTIFICATION_EVENTS)[keyof typeof NOTIFICATION_EVENTS];
293
- type ProviderEventType = (typeof PROVIDER_EVENTS)[keyof typeof PROVIDER_EVENTS];
294
- type AuthEventType = (typeof AUTH_EVENTS)[keyof typeof AUTH_EVENTS];
295
- type SecurityEventType = (typeof SECURITY_EVENTS)[keyof typeof SECURITY_EVENTS];
296
- /**
297
- * Union of all 26 registered event type strings.
298
- */
299
- type EventType = ConversationEventType | CallEventType | TaskEventType | ReminderEventType | TranslationEventType | NotificationEventType | ProviderEventType | AuthEventType | SecurityEventType;
300
- interface ConversationCreatedPayload {
301
- channel: string;
302
- origin_system: string;
303
- participant_count: number;
304
- }
305
- interface ConversationMessageSentPayload {
306
- channel: string;
307
- direction: string;
308
- message_chars: number;
309
- has_attachment: boolean;
310
- provider_system: string;
311
- }
312
- interface ConversationMessageReceivedPayload {
313
- channel: string;
314
- direction: string;
315
- message_chars: number;
316
- provider_system: string;
317
- }
318
- interface ConversationMarkedReadPayload {
319
- read_by_actor_id: string;
320
- unread_count_before: number;
321
- unread_count_after: number;
322
- }
323
- interface ConversationAttachmentUploadedPayload {
324
- attachment_id: string;
325
- mime_type: string;
326
- size_bytes: number;
327
- storage_class: string;
328
- }
329
- interface ConversationAttachmentDownloadedPayload {
330
- attachment_id: string;
331
- download_actor_type: string;
332
- access_path: string;
333
- }
334
- interface CallInitiatedPayload {
335
- direction: string;
336
- provider_system: string;
337
- from_number_ref: string;
338
- to_number_ref: string;
339
- }
340
- interface CallConnectedPayload {
341
- provider_system: string;
342
- ring_duration_ms: number;
343
- }
344
- interface CallEndedPayload {
345
- provider_system: string;
346
- duration_ms: number;
347
- end_reason: string;
348
- disposition: string;
349
- }
350
- interface CallMissedPayload {
351
- provider_system: string;
352
- miss_reason: string;
353
- }
354
- interface TaskCreatedPayload {
355
- task_id: string;
356
- created_by: string;
357
- assigned_to: string;
358
- priority: string;
359
- due_at: string;
360
- }
361
- interface TaskAssignedPayload {
362
- task_id: string;
363
- assigned_to: string;
364
- assigned_by: string;
365
- }
366
- interface TaskStatusChangedPayload {
367
- task_id: string;
368
- status_from: string;
369
- status_to: string;
370
- changed_by: string;
371
- }
372
- interface ReminderScheduledPayload {
373
- reminder_id: string;
374
- conversation_id: string;
375
- scheduled_for: string;
376
- scheduled_by: string;
377
- }
378
- interface ReminderTriggeredPayload {
379
- reminder_id: string;
380
- trigger_result: string;
381
- notification_attempted: boolean;
382
- }
383
- interface TranslationRequestedPayload {
384
- target_language: string;
385
- source_language: string;
386
- char_count: number;
387
- mode: string;
388
- }
389
- interface TranslationCompletedPayload {
390
- target_language: string;
391
- provider: string;
392
- latency_ms: number;
393
- success: boolean;
394
- error_code?: string;
395
- }
396
- interface NotificationSentPayload {
397
- notification_id: string;
398
- channel: string;
399
- platform: string;
400
- recipient_ref: string;
401
- success: boolean;
402
- }
403
- interface NotificationDeliveredPayload {
404
- notification_id: string;
405
- platform: string;
406
- delivered_at: string;
407
- }
408
- interface NotificationOpenedPayload {
409
- notification_id: string;
410
- platform: string;
411
- opened_at: string;
412
- }
413
- interface ProviderSyncStartedPayload {
414
- provider_system: string;
415
- operation: string;
416
- scope: string;
417
- batch_id: string;
418
- }
419
- interface ProviderSyncSucceededPayload {
420
- provider_system: string;
421
- operation: string;
422
- batch_id: string;
423
- records_processed: number;
424
- duration_ms: number;
425
- }
426
- interface ProviderSyncFailedPayload {
427
- provider_system: string;
428
- operation: string;
429
- batch_id: string;
430
- error_code: string;
431
- retryable: boolean;
432
- }
433
- interface AuthLoginSucceededPayload {
434
- auth_provider: string;
435
- platform: string;
436
- session_ref: string;
437
- }
438
- interface AuthLoginFailedPayload {
439
- auth_provider: string;
440
- platform: string;
441
- failure_code: string;
442
- }
443
- interface SecurityAccessDeniedPayload {
444
- resource: string;
445
- policy: string;
446
- reason_code: string;
447
- actor_id: string;
448
- }
449
- /**
450
- * Maps each event type string to its required payload interface.
451
- */
452
- interface EventPayloadMap {
453
- "conversation.created.v1": ConversationCreatedPayload;
454
- "conversation.message_sent.v1": ConversationMessageSentPayload;
455
- "conversation.message_received.v1": ConversationMessageReceivedPayload;
456
- "conversation.marked_read.v1": ConversationMarkedReadPayload;
457
- "conversation.attachment_uploaded.v1": ConversationAttachmentUploadedPayload;
458
- "conversation.attachment_downloaded.v1": ConversationAttachmentDownloadedPayload;
459
- "call.initiated.v1": CallInitiatedPayload;
460
- "call.connected.v1": CallConnectedPayload;
461
- "call.ended.v1": CallEndedPayload;
462
- "call.missed.v1": CallMissedPayload;
463
- "task.created.v1": TaskCreatedPayload;
464
- "task.assigned.v1": TaskAssignedPayload;
465
- "task.status_changed.v1": TaskStatusChangedPayload;
466
- "reminder.scheduled.v1": ReminderScheduledPayload;
467
- "reminder.triggered.v1": ReminderTriggeredPayload;
468
- "translation.requested.v1": TranslationRequestedPayload;
469
- "translation.completed.v1": TranslationCompletedPayload;
470
- "notification.sent.v1": NotificationSentPayload;
471
- "notification.delivered.v1": NotificationDeliveredPayload;
472
- "notification.opened.v1": NotificationOpenedPayload;
473
- "provider.sync_started.v1": ProviderSyncStartedPayload;
474
- "provider.sync_succeeded.v1": ProviderSyncSucceededPayload;
475
- "provider.sync_failed.v1": ProviderSyncFailedPayload;
476
- "auth.login_succeeded.v1": AuthLoginSucceededPayload;
477
- "auth.login_failed.v1": AuthLoginFailedPayload;
478
- "security.access_denied.v1": SecurityAccessDeniedPayload;
479
- }
480
- /**
481
- * Subject references for the event. Uses tokenized references only -- no PHI.
482
- */
483
- interface EventSubject {
484
- patient_ref?: string;
485
- conversation_id?: string;
486
- task_id?: string;
487
- call_id?: string;
488
- }
489
- /**
490
- * Actor who triggered the event.
491
- */
492
- interface EventActor {
493
- actor_id: string;
494
- actor_type: "user" | "system" | "webhook";
495
- }
496
- /**
497
- * Compliance metadata for the event.
498
- */
499
- interface EventCompliance {
500
- pii_level: "none" | "limited" | "full";
501
- contains_phi: boolean;
502
- consent_context: string;
503
- retention_class: string;
504
- }
505
- /**
506
- * Optional overrides when calling truth.track().
507
- */
508
- interface TrackOptions {
509
- /** Override the default actor for this event */
510
- actor?: EventActor;
511
- /** Subject references for this event */
512
- subject?: EventSubject;
513
- /** Compliance metadata for this event */
514
- compliance?: EventCompliance;
515
- /** Override the default tenant ID for this event */
516
- tenantId?: string;
517
- /** Override the occurred_at timestamp (ISO 8601) */
518
- occurredAt?: string;
519
- }
520
-
521
- /**
522
- * Actor context attached to tracked events.
523
- */
524
- interface ActorContext {
525
- actorId: string;
526
- actorType: "user" | "system" | "webhook";
527
- }
528
-
529
- interface TruthTrackingContextValue {
530
- track: <T extends EventType>(eventType: T, payload: EventPayloadMap[T], options?: TrackOptions) => void;
531
- identify: (actorId: string, actorType: ActorContext["actorType"]) => void;
532
- }
533
- interface TruthTrackingProviderProps {
534
- /** Truth environment — determines API URL for event delivery */
535
- environment?: string;
536
- /** Event source identifier */
537
- source?: string;
538
- /** Source version (git SHA) */
539
- sourceVersion?: string;
540
- /** Default tenant ID */
541
- tenantId?: string;
542
- /** API key for authentication */
543
- apiKey?: string;
544
- children: ReactNode;
545
- }
546
- declare function TruthTrackingProvider({ environment, source, sourceVersion, tenantId, apiKey, children, }: TruthTrackingProviderProps): react.FunctionComponentElement<react.ProviderProps<TruthTrackingContextValue | null>>;
547
- /**
548
- * Access the Truth tracking context. Must be within a TruthTrackingProvider.
549
- * Returns `{ track, identify }` for emitting events to Kinesis.
550
- */
551
- declare function useTruth(): TruthTrackingContextValue;
552
-
553
- /**
554
- * Appointment interfaces for the Truth SDK.
555
- */
556
- /**
557
- * Normalized appointment record from the Truth platform.
558
- */
559
- interface Appointment {
560
- /** Truth platform appointment ID */
561
- id: string;
562
- /** Associated patient ID */
563
- patientId: string;
564
- /** Provider/practitioner ID */
565
- providerId?: string;
566
- /** Provider/practitioner name */
567
- providerName?: string;
568
- /** Appointment start time (ISO 8601) */
569
- startTime: string;
570
- /** Appointment end time (ISO 8601) */
571
- endTime: string;
572
- /** Appointment status */
573
- status: string;
574
- /** Appointment type or reason */
575
- appointmentType?: string;
576
- /** Visit reason or chief complaint */
577
- reason?: string;
578
- /** Location or facility name */
579
- location?: string;
580
- /** Source EHR system (e.g. "elation", "hint") */
581
- sourceSystem?: string;
582
- /** ID in the source EHR system */
583
- sourceId?: string;
584
- /** Associated organization/tenant ID */
585
- tenantId: string;
586
- /** ISO 8601 timestamp of record creation */
587
- createdAt: string;
588
- /** ISO 8601 timestamp of last update */
589
- updatedAt: string;
590
- }
591
- /**
592
- * Options for listing appointments.
593
- */
594
- interface AppointmentListOptions {
595
- /** Filter by patient ID */
596
- patientId?: string;
597
- /** Filter by start date (ISO 8601 date string) */
598
- startDate?: string;
599
- /** Filter by end date (ISO 8601 date string) */
600
- endDate?: string;
601
- /** Filter by appointment status */
602
- status?: string;
603
- /** Maximum number of results to return */
604
- limit?: number;
605
- /** Cursor for pagination */
606
- cursor?: string;
607
- }
608
-
609
- /**
610
- * Patient interfaces for the Truth SDK.
611
- */
612
- /**
613
- * Normalized patient record from the Truth platform.
614
- */
615
- interface Patient {
616
- /** Truth platform patient ID */
617
- id: string;
618
- /** Elation EHR patient ID (if linked) */
619
- elationId?: string;
620
- /** Hint EHR patient ID (if linked) */
621
- hintId?: string;
622
- /** Patient first name */
623
- firstName: string;
624
- /** Patient last name */
625
- lastName: string;
626
- /** Date of birth (ISO 8601 date string, e.g. "1990-01-15") */
627
- dateOfBirth?: string;
628
- /** Patient sex */
629
- sex?: string;
630
- /** Primary email address */
631
- email?: string;
632
- /** Primary phone number */
633
- phone?: string;
634
- /** Patient status in the system */
635
- status: string;
636
- /** Associated organization/tenant ID */
637
- tenantId: string;
638
- /** ISO 8601 timestamp of record creation */
639
- createdAt: string;
640
- /** ISO 8601 timestamp of last update */
641
- updatedAt: string;
642
- }
643
- /**
644
- * Options for listing patients.
645
- */
646
- interface PatientListOptions {
647
- /** Search patients by name, email, or phone */
648
- search?: string;
649
- /** Maximum number of results to return */
650
- limit?: number;
651
- /** Cursor for pagination */
652
- cursor?: string;
653
- }
654
-
655
- export { type Appointment, type AppointmentListOptions, type ConversationMessage, type EventPayloadMap, type EventType, type Patient, type PatientListOptions, type Physician, type TrackOptions, TruthProvider, type TruthProviderProps, type TruthTrackingContextValue, TruthTrackingProvider, type TruthTrackingProviderProps, type UseAppointmentListOptions, type UseConversationMessagesOptions, type UsePatientBasicOptions, type UsePatientBasicResult, type UsePatientListOptions, type UsePatientMedicalOptions, type UsePatientPhotoOptions, useAppointment, useAppointmentByElationId, useAppointments, useConversationMessages, usePatient, usePatientBasic, usePatientByElationId, usePatientByHintId, usePatientMedical, usePatientPhoto, usePatients, usePharmacyByNcpdpId, usePhysicianByElationId, usePhysiciansByElationIds, useTruth };