@mindbill/react 0.17.0 → 0.20.0

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/README.md CHANGED
@@ -8,18 +8,15 @@ npm install @mindbill/react @mindbill/node
8
8
 
9
9
  ## Connected lifecycle
10
10
 
11
- `ConnectedBillLifecycle` is the default integration. It owns bill loading, payer lookup, editable review, attachments, submission, status refresh, EORs, payment posting, Second Bill Review, correction/resubmission, and close.
12
-
13
- Procedure entry is keyboard-first: the form always keeps one empty row after the entered lines, grows as soon as that row is partially filled, and omits the empty row from save and submit payloads.
11
+ `ConnectedBillLifecycle` starts after your server atomically creates and submits an immutable bill. It owns the submitted-to-closed progress rail, a read-only rendering of the exact submitted snapshot, server-owned human-readable history, packet download, EORs, payment posting, Second Bill Review, close, and reopen. The only persistent header action is **Download packet**; status-dependent actions appear in the details view when MindBill makes them available.
14
12
 
15
13
  ```tsx
16
14
  import { ConnectedBillLifecycle } from "@mindbill/react";
17
15
 
18
16
  <ConnectedBillLifecycle
19
- create={knownBillValues}
17
+ billId={billId}
20
18
  sessionEndpoint="/api/mindbill/session"
21
19
  appearance={{ preset: "qme-companion" }}
22
- onBillCreated={(billId) => navigate(`/bills/${billId}`)}
23
20
  />
24
21
  ```
25
22
 
@@ -64,8 +61,6 @@ export async function POST(request: Request) {
64
61
  }
65
62
  ```
66
63
 
67
- The component searches MindBill's claims-administrator directory with both payer text and the current claim number. It explains name and claim-pattern evidence, shows delivery availability, and only preselects a high-confidence exact name or alias match.
68
-
69
64
  The API key binds every session to one organization. `subject` identifies the user and `permissions` express the role. MindBill enforces the organization boundary on every bill request. A permanent Partner API key must never enter frontend code.
70
65
 
71
66
  ## Compact status
@@ -84,6 +79,20 @@ import { ConnectedBillStatus } from "@mindbill/react";
84
79
 
85
80
  Use `useBillStatus({ billId })` when you want to render custom status UI. It returns `data`, `error`, `isLoading`, `isRefreshing`, and `refresh`. Use `createBillStatusClient` outside React.
86
81
 
82
+ The public lifecycle is `Submitted → Accepted → Processed → Closed`. Rejections and denials remain detailed states inside the Processed stage so the progress rail stays stable while the action sheet explains what the user can do next. Partner APIs and components do not expose draft or queued states.
83
+
84
+ ## Read-only bill details
85
+
86
+ Use `BillReadOnlyForm` when you already loaded `BillLifecycleData` and only need the immutable detail surface. It uses the same section order and responsive layout as `BillSubmissionForm`, but renders values, calculated fees, and attachments without form controls.
87
+
88
+ ```tsx
89
+ import { BillReadOnlyForm } from "@mindbill/react";
90
+
91
+ <BillReadOnlyForm data={billLifecycleData} onOpenAttachment={openAttachment} />
92
+ ```
93
+
94
+ `ConnectedBillLifecycle` composes this component with the Details / Bill history switch, so most partners should not assemble these pieces themselves.
95
+
87
96
  ## Lifecycle actions
88
97
 
89
98
  MindBill returns the actions that are valid for the bill's current state. Render that server-authoritative list instead of duplicating rejection, EOR, denial, review, payment, and closure rules in your application.
@@ -98,8 +107,8 @@ import { BillLifecycleActions } from "@mindbill/react";
98
107
  case "view_eor": return bill.openEor();
99
108
  case "post_payment": return setPaymentOpen(true);
100
109
  case "second_review": return setSecondReviewOpen(true);
101
- case "correct_and_resubmit": return bill.startCorrection();
102
110
  case "close": return bill.closeBill({ reason: "Resolved" });
111
+ case "reopen": return bill.reopenBill({ reason: "Follow-up is continuing" });
103
112
  }
104
113
  }}
105
114
  />
@@ -109,40 +118,56 @@ Disabled actions are hidden by default. Set `showUnavailable` to show them with
109
118
 
110
119
  ## Activity timeline
111
120
 
112
- `BillActivityTimeline` renders ordered lifecycle events. Feed it events stored from MindBill's signed webhooks so a reload does not depend on browser callback history.
121
+ `BillActivityTimeline` renders the ordered, human-readable lifecycle events returned by MindBill. Partners do not need to store or reconstruct bill history.
113
122
 
114
123
  ```tsx
115
124
  import { BillActivityTimeline } from "@mindbill/react";
116
125
 
117
- <BillActivityTimeline events={billEvents} />
126
+ <BillActivityTimeline events={bill.data.activity} />
118
127
  ```
119
128
 
120
- Browser callbacks such as `onBillCreated`, `onBillIdChange`, and `onChanged` are for immediate UI, navigation, optimistic state, and analytics. Signed webhooks are the authoritative integration for durable server state.
129
+ Browser callbacks such as `onChanged` are for immediate UI, navigation, optimistic state, and analytics. MindBill remains authoritative for durable history; signed webhooks are available when your backend also needs event-driven synchronization.
121
130
 
122
- ## Controlled escape hatch
131
+ ## Bill submission form
123
132
 
124
- Use `BillReviewForm` only when your application intentionally owns the API calls and local review state. Known bill values and payer documents remain explicit and editable.
133
+ `BillSubmissionForm` owns the complete pre-submission experience: the bill field schema, required-field rules and red asterisks, validation, service-line editing, source-document selection, PDF uploads, and the single Submit action. Its `bill` value is structurally identical to the server SDK's `CreateBillRequest`.
125
134
 
126
- ```tsx
127
- import { BillReviewForm } from "@mindbill/react";
135
+ The partner application only loads initial values and sends the component's immutable snapshot to its authenticated server route. Uploaded files stay in the browser until the user submits.
128
136
 
129
- <BillReviewForm
130
- data={billReview}
137
+ ```tsx
138
+ import { BillSubmissionForm } from "@mindbill/react";
139
+
140
+ <BillSubmissionForm
141
+ initialBill={bootstrap.bill}
142
+ attachments={bootstrap.attachments}
143
+ getSession={() => fetch("/api/mindbill/session", { method: "POST" }).then(r => r.json())}
144
+ diagnosisOptions={bootstrap.diagnoses}
145
+ procedureOptions={bootstrap.procedures}
146
+ onLookupPostalCode={lookupPostalCode}
131
147
  appearance={{ preset: "qme-companion" }}
132
- onSave={(input) => api.patch("/billing/review", input)}
133
- onSubmit={(input, route) => api.post("/billing/submit", { input, route })}
134
- onAddAttachment={(file, documentType, description) =>
135
- api.upload("/billing/attachments", { file, documentType, description })
136
- }
137
- onRemoveAttachment={(attachmentId) =>
138
- api.delete(`/billing/attachments/${attachmentId}`)
139
- }
140
- onSearchClaimsAdministrators={(query, claimNumber) =>
141
- api.searchPayers({ query, claimNumber })
148
+ onSubmit={({ bill, sourceAttachmentIds, uploads }) =>
149
+ submitBill({ bill, sourceAttachmentIds, uploads })
142
150
  }
143
151
  />
144
152
  ```
145
153
 
154
+ The component includes the interaction model, not just the markup:
155
+
156
+ - a responsive two-column review form (one column on narrow screens);
157
+ - paste-friendly `MM/DD/YYYY` date fields and required-field asterisks;
158
+ - ZIP-to-city/state completion through `onLookupPostalCode`;
159
+ - searchable ICD-10 multi-select with removable chips;
160
+ - canonical claims-administrator search through the authenticated MindBill payer directory;
161
+ - QME, AME, and Psych QME evaluation modes with medical-legal modifier defaults;
162
+ - searchable procedure/modifier controls, fee-schedule amounts, totals, and an automatically maintained empty line;
163
+ - auto-attached source documents, practice W-9 treatment, and click, panel-drop, or whole-page PDF upload.
164
+
165
+ Partners supply tenant-specific bootstrap data and server callbacks. Required fields, validation, payer selection, service-line behavior, attachments, and submission UX stay inside `@mindbill/react`, so every integration receives the same billing workflow.
166
+
167
+ `BILL_SUBMISSION_REQUIRED_FIELDS` and `validateBillSubmission` expose the same contract for tests and non-visual integrations. The component never creates a draft; its callback fires only when the user submits a locally valid snapshot.
168
+
169
+ `BillReviewForm` remains available for legacy integrations that already own a custom review model. New integrations should use `BillSubmissionForm`.
170
+
146
171
  Use `BillStatusSummary` only when your application already owns status loading and wants a presentation-only component:
147
172
 
148
173
  ```tsx
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { MindBillAppearance, MindBillEventDetail, MindBillErrorDetail } from '@mindbill/embed';
2
2
  export { MindBillAppearance, MindBillErrorDetail, MindBillEventDetail } from '@mindbill/embed';
3
3
  import { CSSProperties, ReactElement, ReactNode } from 'react';
4
- import { BillLifecycleAction, BillLifecycleDelivery, BillPaymentRecord, BillRemittanceSummary, BillLifecycleData, BillLifecycleClientOptions, BrowserBillCreateInput, BillLifecycleClient, BillEorDocument } from '@mindbill/browser';
5
- export { BillActivityRecord, BillEorDocument, BillLifecycleAction, BillLifecycleActionId, BillLifecycleClient, BillLifecycleClientOptions, BillLifecycleData, BillLifecycleDelivery, BillLifecycleSession, BillLifecycleSessionProvider, BillLifecycleSessionRequest, BillPaymentRecord, BillRemittanceSummary, BrowserBillAddress, BrowserBillCreateInput, CloseBillInput, PostBillPaymentInput, SubmitSecondReviewInput, createBillLifecycleClient } from '@mindbill/browser';
4
+ import { BillReviewData as BillReviewData$1, BillReviewAttachment as BillReviewAttachment$1, BillLifecycleSessionProvider, BillReviewPayer as BillReviewPayer$1, BillLifecycleAction, BillLifecycleDelivery, BillPaymentRecord, BillRemittanceSummary, BillLifecycleData, BillLifecycleClientOptions, BillLifecycleClient, BillEorDocument } from '@mindbill/browser';
5
+ export { BillActivityRecord, BillEorDocument, BillLifecycleAction, BillLifecycleActionId, BillLifecycleClient, BillLifecycleClientOptions, BillLifecycleData, BillLifecycleDelivery, BillLifecycleSession, BillLifecycleSessionProvider, BillLifecycleSessionRequest, BillPaymentRecord, BillRemittanceSummary, CloseBillInput, PostBillPaymentInput, ReopenBillInput, SubmitSecondReviewInput, createBillLifecycleClient } from '@mindbill/browser';
6
6
 
7
7
  type MindBillThemePreset = "mindbill" | "qme-companion" | "orange-bright" | "clinical-blue";
8
8
  type MindBillReactAppearance = MindBillAppearance & {
@@ -273,7 +273,7 @@ type BillDeliveryOptions = {
273
273
  mailingAddress?: string | null;
274
274
  };
275
275
  };
276
- type BillSubmissionInput = {
276
+ type BillSubmissionInput$1 = {
277
277
  route: BillSubmissionRoute;
278
278
  destination?: {
279
279
  faxNumber?: string;
@@ -286,9 +286,11 @@ type BillSubmissionInput = {
286
286
  };
287
287
  type BillReviewFormProps = {
288
288
  data: BillReviewData;
289
- onSave: (input: BillReviewSaveInput) => Promise<BillReviewData | void>;
290
- onSubmit: (input: BillReviewSaveInput, submission: BillSubmissionInput) => Promise<void>;
291
- onGetDeliveryOptions: () => Promise<BillDeliveryOptions>;
289
+ mode?: "review" | "submission";
290
+ initialSubmission?: BillSubmissionInput$1;
291
+ onSave?: (input: BillReviewSaveInput) => Promise<BillReviewData | void>;
292
+ onSubmit: (input: BillReviewSaveInput, submission: BillSubmissionInput$1) => Promise<void>;
293
+ onGetDeliveryOptions?: () => Promise<BillDeliveryOptions>;
292
294
  onAddAttachment: (file: File, documentType: BillReviewDocumentType, description?: string) => Promise<void>;
293
295
  onRemoveAttachment: (attachmentId: string) => Promise<void>;
294
296
  onOpenAttachment?: (attachment: BillReviewAttachment) => void;
@@ -321,7 +323,7 @@ type BillReviewDraft = {
321
323
  lineItems: BillReviewLineItem[];
322
324
  };
323
325
  declare function buildBillReviewSaveInput(draft: BillReviewDraft): BillReviewSaveInput;
324
- declare function BillReviewForm({ data, onSave, onSubmit, onGetDeliveryOptions, onAddAttachment, onRemoveAttachment, onOpenAttachment, onSearchClaimsAdministrators, className, style, appearance, features, disabled, }: BillReviewFormProps): ReactElement;
326
+ declare function BillReviewForm({ data, mode, initialSubmission, onSave, onSubmit, onGetDeliveryOptions, onAddAttachment, onRemoveAttachment, onOpenAttachment, onSearchClaimsAdministrators, className, style, appearance, features, disabled, }: BillReviewFormProps): ReactElement;
325
327
  type BillStatusSummaryProps = {
326
328
  status: string;
327
329
  submittedAt?: string | null;
@@ -344,6 +346,164 @@ type BillStatusAction = {
344
346
  };
345
347
  declare function BillStatusSummary({ status, submittedAt, agingDays, updatedAt, totalCharge, totalPaid, balanceDue, actions, className, style, appearance }: BillStatusSummaryProps): ReactElement;
346
348
 
349
+ type BillReadOnlyFormProps = {
350
+ data: BillReviewData$1;
351
+ appearance?: MindBillReactAppearance;
352
+ className?: string;
353
+ style?: CSSProperties;
354
+ onOpenAttachment?: (attachment: BillReviewAttachment$1) => void | Promise<void>;
355
+ };
356
+ declare function BillReadOnlyForm({ data, appearance, className, style, onOpenAttachment }: BillReadOnlyFormProps): ReactElement;
357
+
358
+ declare const BILL_SUBMISSION_DOCUMENT_TYPES: readonly ["final_report", "proof_of_service", "letter_of_attestation", "form_122", "return_to_work_voucher", "w9", "medical_records", "appeal", "other"];
359
+ type BillSubmissionDocumentType = (typeof BILL_SUBMISSION_DOCUMENT_TYPES)[number];
360
+ type BillSubmissionEvaluationType = "qme" | "ame" | "psych_qme";
361
+ type BillSubmissionAddress = {
362
+ line1: string;
363
+ city: string;
364
+ state: string;
365
+ postalCode: string;
366
+ };
367
+ type BillSubmissionDiagnosisOption = {
368
+ code: string;
369
+ description: string;
370
+ };
371
+ type BillSubmissionProcedureOption = {
372
+ code: string;
373
+ description: string;
374
+ allowedAmount?: number;
375
+ };
376
+ type BillSubmissionModifierOption = {
377
+ code: string;
378
+ description: string;
379
+ };
380
+ type BillSubmissionPostalPlace = {
381
+ city: string;
382
+ state: string;
383
+ };
384
+ type BillSubmissionInput = {
385
+ externalId?: string;
386
+ billingMode?: "med_legal" | "professional";
387
+ patient: {
388
+ id?: string;
389
+ externalId?: string;
390
+ firstName: string;
391
+ middleName?: string;
392
+ lastName: string;
393
+ dateOfBirth: string;
394
+ ssn?: string;
395
+ gender?: "M" | "F" | "X";
396
+ phone?: string;
397
+ address: BillSubmissionAddress;
398
+ };
399
+ claim: {
400
+ id?: string;
401
+ externalId?: string;
402
+ claimNumber: string;
403
+ adjNumber?: string;
404
+ employer?: string;
405
+ dateOfInjury?: string;
406
+ injuryState?: string;
407
+ description?: string;
408
+ claimsAdministrator?: {
409
+ id?: string;
410
+ name: string;
411
+ };
412
+ };
413
+ service: {
414
+ date: string;
415
+ endDate?: string | null;
416
+ authorizationNumber?: string | null;
417
+ };
418
+ billingProvider?: {
419
+ name?: string;
420
+ taxId?: string;
421
+ npi?: string;
422
+ phone?: string;
423
+ address?: BillSubmissionAddress;
424
+ };
425
+ renderingProvider?: {
426
+ name?: string;
427
+ specialty?: string;
428
+ npi?: string;
429
+ taxonomy?: string;
430
+ licenseNumber?: string;
431
+ licenseState?: string;
432
+ isQme?: boolean;
433
+ isAme?: boolean;
434
+ };
435
+ serviceLocation?: {
436
+ name?: string;
437
+ address?: BillSubmissionAddress;
438
+ placeOfServiceCode?: string;
439
+ };
440
+ diagnoses?: string[];
441
+ serviceLines: Array<{
442
+ code: string;
443
+ modifiers?: string[];
444
+ units?: number;
445
+ serviceDate?: string;
446
+ serviceDateEnd?: string | null;
447
+ charge?: number;
448
+ diagnosisPointers?: number[];
449
+ }>;
450
+ };
451
+ type BillSubmissionSourceAttachment = {
452
+ id: string;
453
+ fileName: string;
454
+ documentType: BillSubmissionDocumentType;
455
+ description?: string;
456
+ selected?: boolean;
457
+ /** Auto-attached documents such as a practice W-9 cannot be deselected. */
458
+ autoAttached?: boolean;
459
+ removable?: boolean;
460
+ previewUrl?: string;
461
+ };
462
+ type BillSubmissionUpload = {
463
+ file: File;
464
+ documentType: BillSubmissionDocumentType;
465
+ description?: string;
466
+ };
467
+ type BillSubmissionFormValue = {
468
+ bill: BillSubmissionInput;
469
+ sourceAttachmentIds: string[];
470
+ uploads: BillSubmissionUpload[];
471
+ };
472
+ type BillSubmissionFormProps = {
473
+ initialBill: BillSubmissionInput;
474
+ attachments?: BillSubmissionSourceAttachment[];
475
+ onSubmit: (value: BillSubmissionFormValue) => void | Promise<void>;
476
+ /** Short-lived partner browser session. Enables the built-in canonical payer directory. */
477
+ getSession?: BillLifecycleSessionProvider;
478
+ sessionEndpoint?: string;
479
+ apiBaseUrl?: string;
480
+ fetch?: typeof globalThis.fetch;
481
+ onSearchClaimsAdministrators?: (query: string, claimNumber?: string) => Promise<BillReviewPayer$1[]>;
482
+ diagnosisOptions?: BillSubmissionDiagnosisOption[];
483
+ onSearchDiagnoses?: (query: string) => Promise<BillSubmissionDiagnosisOption[]>;
484
+ onLookupPostalCode?: (postalCode: string) => Promise<BillSubmissionPostalPlace | null>;
485
+ procedureOptions?: BillSubmissionProcedureOption[];
486
+ modifierOptions?: BillSubmissionModifierOption[];
487
+ appearance?: MindBillReactAppearance;
488
+ className?: string;
489
+ style?: CSSProperties;
490
+ disabled?: boolean;
491
+ submitLabel?: string;
492
+ heading?: ReactNode;
493
+ description?: ReactNode;
494
+ };
495
+ declare const BILL_SUBMISSION_REQUIRED_FIELDS: readonly ["patient.firstName", "patient.lastName", "patient.dateOfBirth", "patient.address.line1", "patient.address.city", "patient.address.state", "patient.address.postalCode", "claim.claimNumber", "claim.claimsAdministrator", "service.date", "serviceLines[].code", "serviceLines[].units"];
496
+ type BillSubmissionValidation = {
497
+ valid: boolean;
498
+ fieldErrors: Record<string, string>;
499
+ };
500
+ declare function ensureTrailingBillSubmissionLine(lines: BillSubmissionInput["serviceLines"]): BillSubmissionInput["serviceLines"];
501
+ declare function parseBillSubmissionDate(value: string): string | undefined;
502
+ declare function formatBillSubmissionDate(value: string | null | undefined): string;
503
+ declare function applyBillSubmissionEvaluationModifiers(lines: BillSubmissionInput["serviceLines"], type: BillSubmissionEvaluationType): BillSubmissionInput["serviceLines"];
504
+ declare function validateBillSubmission(bill: BillSubmissionInput): BillSubmissionValidation;
505
+ declare function BillSubmissionForm({ initialBill, attachments, onSubmit, getSession, sessionEndpoint, apiBaseUrl, fetch: fetchOverride, onSearchClaimsAdministrators, diagnosisOptions, onSearchDiagnoses, onLookupPostalCode, procedureOptions, modifierOptions, appearance, className, style, disabled, submitLabel, heading, description, }: BillSubmissionFormProps): ReactElement;
506
+
347
507
  type BillStatusData = {
348
508
  billId: string;
349
509
  state: string;
@@ -437,7 +597,7 @@ type BillActivityTimelineProps = SurfaceProps & {
437
597
  /** Human-readable fallback for a signed partner event type. */
438
598
  declare function billActivityEventLabel(type: string): string;
439
599
  declare function BillActivityTimeline({ events, emptyLabel, appearance, className, style, formatDate }: BillActivityTimelineProps): ReactElement;
440
- type BillLifecycleStage = "created" | "submitted" | "accepted" | "response" | "follow_up" | "closed";
600
+ type BillLifecycleStage = "submitted" | "accepted" | "processed" | "closed";
441
601
  /** Maps MindBill's detailed lifecycle state into a compact progress stage. */
442
602
  declare function billLifecycleStage(state: string): BillLifecycleStage;
443
603
  type BillLifecycleProgressProps = SurfaceProps & {
@@ -463,16 +623,12 @@ type BillPaymentLedgerProps = SurfaceProps & {
463
623
  declare function BillPaymentLedger({ payments, appearance, className, style }: BillPaymentLedgerProps): ReactElement;
464
624
 
465
625
  type UseBillLifecycleOptions = BillLifecycleClientOptions & {
466
- /** Initial bill snapshot used when no existing `billId` is supplied. */
467
- create?: BrowserBillCreateInput;
468
626
  refreshInterval?: number;
469
627
  enabled?: boolean;
470
628
  initialData?: BillLifecycleData | null;
471
- onBillCreated?: (billId: string, data: BillLifecycleData) => void | Promise<void>;
472
- onBillIdChange?: (billId: string, previousBillId: string | null) => void | Promise<void>;
473
629
  };
474
630
  type UseBillLifecycleResult = {
475
- billId: string | null;
631
+ billId: string;
476
632
  data: BillLifecycleData | null;
477
633
  error: Error | null;
478
634
  isLoading: boolean;
@@ -481,28 +637,24 @@ type UseBillLifecycleResult = {
481
637
  refresh: () => Promise<void>;
482
638
  searchClaimsAdministrators: BillLifecycleClient["searchClaimsAdministrators"];
483
639
  getDeliveryOptions: BillLifecycleClient["getDeliveryOptions"];
484
- saveReview: BillLifecycleClient["saveReview"];
485
- submitBill: BillLifecycleClient["submitBill"];
486
- addAttachment: BillLifecycleClient["addAttachment"];
487
- removeAttachment: BillLifecycleClient["removeAttachment"];
488
640
  openAttachment: (attachment: BillReviewAttachment) => Promise<void>;
489
641
  openEor: (document: BillEorDocument) => Promise<void>;
642
+ downloadPacket: () => Promise<void>;
490
643
  closeBill: BillLifecycleClient["closeBill"];
644
+ reopenBill: BillLifecycleClient["reopenBill"];
491
645
  postPayment: BillLifecycleClient["postPayment"];
492
646
  submitSecondReview: BillLifecycleClient["submitSecondReview"];
493
- startCorrection: () => Promise<BillLifecycleData>;
494
647
  };
495
- declare function useBillLifecycle({ billId: providedBillId, create, sessionEndpoint, getSession, apiBaseUrl, refreshInterval, enabled, initialData, onBillCreated, onBillIdChange, fetch: fetchOverride, }: UseBillLifecycleOptions): UseBillLifecycleResult;
648
+ declare function useBillLifecycle({ billId: providedBillId, sessionEndpoint, getSession, apiBaseUrl, refreshInterval, enabled, initialData, fetch: fetchOverride, }: UseBillLifecycleOptions): UseBillLifecycleResult;
496
649
  type ConnectedBillLifecycleProps = UseBillLifecycleOptions & {
497
650
  appearance?: MindBillReactAppearance;
498
- features?: BillReviewFeatures;
499
651
  className?: string;
500
652
  style?: CSSProperties;
501
653
  loadingFallback?: ReactNode;
502
654
  errorFallback?: (error: Error, retry: () => Promise<void>) => ReactNode;
503
655
  onChanged?: (data: BillLifecycleData) => void;
504
656
  };
505
- declare function ConnectedBillLifecycle({ appearance, features, className, style, loadingFallback, errorFallback, onChanged, ...options }: ConnectedBillLifecycleProps): ReactElement;
657
+ declare function ConnectedBillLifecycle({ appearance, className, style, loadingFallback, errorFallback, onChanged, ...options }: ConnectedBillLifecycleProps): ReactElement;
506
658
 
507
659
  type MindBillWidgetProps = {
508
660
  sessionToken: string;
@@ -516,4 +668,4 @@ type MindBillWidgetProps = {
516
668
  declare function MindBillBillTimeline(props: MindBillWidgetProps): ReactElement;
517
669
  declare function MindBillBillReview(props: MindBillWidgetProps): ReactElement;
518
670
 
519
- export { type BillActivityEvent, BillActivityTimeline, type BillActivityTimelineProps, BillLifecycleActions, type BillLifecycleActionsProps, BillLifecycleProgress, type BillLifecycleProgressProps, type BillLifecycleStage, BillPayerContactCard, type BillPayerContactCardProps, BillPaymentLedger, type BillPaymentLedgerProps, BillRemittanceCard, type BillRemittanceCardProps, type BillReviewAttachment, type BillReviewBillingProvider, type BillReviewClinician, type BillReviewData, type BillReviewDocumentType, type BillReviewDraft, type BillReviewFeatures, BillReviewForm, type BillReviewFormProps, type BillReviewLineItem, type BillReviewLocation, type BillReviewPayer, type BillReviewSaveInput, BillSnapshotSummary, type BillSnapshotSummaryProps, type BillStatusAction, type BillStatusClient, type BillStatusClientOptions, type BillStatusData, type BillStatusSession, type BillStatusSessionProvider, type BillStatusSessionRequest, BillStatusSummary, type BillStatusSummaryProps, type BillSubmissionRoute, ConnectedBillLifecycle, type ConnectedBillLifecycleProps, ConnectedBillStatus, type ConnectedBillStatusProps, MindBillBillReview, MindBillBillTimeline, type MindBillReactAppearance, type MindBillThemePreset, type MindBillWidgetProps, type UseBillLifecycleOptions, type UseBillLifecycleResult, type UseBillStatusOptions, type UseBillStatusResult, billActivityEventLabel, billLifecycleStage, buildBillReviewSaveInput, createBillStatusClient, ensureTrailingProcedureLine, mindBillAppearanceStyle, mindBillThemePresets, resolveMindBillAppearance, useBillLifecycle, useBillStatus, visibleBillLifecycleActions };
671
+ export { BILL_SUBMISSION_DOCUMENT_TYPES, BILL_SUBMISSION_REQUIRED_FIELDS, type BillActivityEvent, BillActivityTimeline, type BillActivityTimelineProps, BillLifecycleActions, type BillLifecycleActionsProps, BillLifecycleProgress, type BillLifecycleProgressProps, type BillLifecycleStage, BillPayerContactCard, type BillPayerContactCardProps, BillPaymentLedger, type BillPaymentLedgerProps, BillReadOnlyForm, type BillReadOnlyFormProps, BillRemittanceCard, type BillRemittanceCardProps, type BillReviewAttachment, type BillReviewBillingProvider, type BillReviewClinician, type BillReviewData, type BillReviewDocumentType, type BillReviewDraft, type BillReviewFeatures, BillReviewForm, type BillReviewFormProps, type BillReviewLineItem, type BillReviewLocation, type BillReviewPayer, type BillReviewSaveInput, BillSnapshotSummary, type BillSnapshotSummaryProps, type BillStatusAction, type BillStatusClient, type BillStatusClientOptions, type BillStatusData, type BillStatusSession, type BillStatusSessionProvider, type BillStatusSessionRequest, BillStatusSummary, type BillStatusSummaryProps, type BillSubmissionAddress, type BillSubmissionDiagnosisOption, type BillSubmissionDocumentType, type BillSubmissionEvaluationType, BillSubmissionForm, type BillSubmissionFormProps, type BillSubmissionFormValue, type BillSubmissionInput, type BillSubmissionModifierOption, type BillSubmissionPostalPlace, type BillSubmissionProcedureOption, type BillSubmissionRoute, type BillSubmissionSourceAttachment, type BillSubmissionUpload, type BillSubmissionValidation, ConnectedBillLifecycle, type ConnectedBillLifecycleProps, ConnectedBillStatus, type ConnectedBillStatusProps, MindBillBillReview, MindBillBillTimeline, type MindBillReactAppearance, type MindBillThemePreset, type MindBillWidgetProps, type UseBillLifecycleOptions, type UseBillLifecycleResult, type UseBillStatusOptions, type UseBillStatusResult, applyBillSubmissionEvaluationModifiers, billActivityEventLabel, billLifecycleStage, buildBillReviewSaveInput, createBillStatusClient, ensureTrailingBillSubmissionLine, ensureTrailingProcedureLine, formatBillSubmissionDate, mindBillAppearanceStyle, mindBillThemePresets, parseBillSubmissionDate, resolveMindBillAppearance, useBillLifecycle, useBillStatus, validateBillSubmission, visibleBillLifecycleActions };