@cosyte/x12 0.0.12 → 0.0.14

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/index.d.cts CHANGED
@@ -78,6 +78,7 @@ declare const WARNING_CODES: {
78
78
  readonly X12_UNKNOWN_HI_QUALIFIER: "X12_UNKNOWN_HI_QUALIFIER";
79
79
  readonly X12_MISSING_REQUIRED_LOOP: "X12_MISSING_REQUIRED_LOOP";
80
80
  readonly X12_837_UNKNOWN_VARIANT: "X12_837_UNKNOWN_VARIANT";
81
+ readonly X12_837_AMBIGUOUS_VARIANT: "X12_837_AMBIGUOUS_VARIANT";
81
82
  readonly X12_UNKNOWN_CLAIM_STATUS_CATEGORY: "X12_UNKNOWN_CLAIM_STATUS_CATEGORY";
82
83
  readonly X12_UNKNOWN_CLAIM_STATUS: "X12_UNKNOWN_CLAIM_STATUS";
83
84
  readonly X12_834_UNKNOWN_MAINTENANCE_TYPE: "X12_834_UNKNOWN_MAINTENANCE_TYPE";
@@ -85,7 +86,12 @@ declare const WARNING_CODES: {
85
86
  readonly X12_837_SERVICE_LINE_NOT_DECODED: "X12_837_SERVICE_LINE_NOT_DECODED";
86
87
  readonly X12_837_SERVICE_LINE_DROPPED: "X12_837_SERVICE_LINE_DROPPED";
87
88
  readonly X12_837_SERVICE_SEGMENT_WITHOUT_LX: "X12_837_SERVICE_SEGMENT_WITHOUT_LX";
89
+ readonly X12_837_SERVICE_SEGMENT_REPEATED: "X12_837_SERVICE_SEGMENT_REPEATED";
88
90
  readonly X12_837_ENTITY_SEGMENT_DISCARDED_AFTER_LX: "X12_837_ENTITY_SEGMENT_DISCARDED_AFTER_LX";
91
+ readonly X12_837_PAY_TO_ADDRESS_REPEATED: "X12_837_PAY_TO_ADDRESS_REPEATED";
92
+ readonly X12_835_BALANCE_NOT_EVALUABLE: "X12_835_BALANCE_NOT_EVALUABLE";
93
+ readonly X12_AMOUNT_ROW_DROPPED: "X12_AMOUNT_ROW_DROPPED";
94
+ readonly X12_STATED_AMOUNT_DISCARDED: "X12_STATED_AMOUNT_DISCARDED";
89
95
  };
90
96
  /**
91
97
  * Discriminant type for `X12ParseWarning.code`. Narrowing a warning by this
@@ -468,6 +474,29 @@ declare function unexpectedSegment(position: X12Position, context: X12Unexpected
468
474
  * ```
469
475
  */
470
476
  declare function remitBalanceMismatch(position: X12Position, invariant: X12BalanceInvariant): X12ParseWarning;
477
+ /**
478
+ * Build an `X12_835_BALANCE_NOT_EVALUABLE` warning. Emitted where a term of
479
+ * a TR3 X221A1 §1.10.2 invariant is `undefined` on the model, so the
480
+ * equation has nothing to compare on one side. `invariant` names which
481
+ * equation could not be run.
482
+ *
483
+ * This is deliberately a DIFFERENT code from
484
+ * {@link remitBalanceMismatch}: that one asserts a computed inequality
485
+ * between amounts the sender supplied, and this one asserts only that the
486
+ * comparison could not be made. Reading an absent term as `0` is what made
487
+ * the two indistinguishable before `X12Decimal | undefined`, and it is the
488
+ * thing this code exists to stop.
489
+ *
490
+ * @example
491
+ * ```ts
492
+ * import { balanceNotEvaluable, BALANCE_INVARIANTS } from "@cosyte/x12";
493
+ * const w = balanceNotEvaluable(
494
+ * { segmentIndex: 12, groupIndex: 0, transactionIndex: 0 },
495
+ * BALANCE_INVARIANTS.CLAIM,
496
+ * );
497
+ * ```
498
+ */
499
+ declare function balanceNotEvaluable(position: X12Position, invariant: X12BalanceInvariant): X12ParseWarning;
471
500
  /**
472
501
  * Build an `X12_UNKNOWN_CARC` warning. Emitted when a CAS adjustment
473
502
  * carries a CARC code outside the bundled snapshot (see
@@ -575,6 +604,38 @@ declare function missingRequiredLoop(position: X12Position, loop: X12RequiredLoo
575
604
  * ```
576
605
  */
577
606
  declare function unknown837Variant(position: X12Position): X12ParseWarning;
607
+ /**
608
+ * Build an `X12_837_AMBIGUOUS_VARIANT` warning. Emitted by the 837 helper
609
+ * when the SVx fall-back is what resolved the variant AND the transaction
610
+ * body carries service segments naming more than one variant, so the
611
+ * resolution is a guess between contradictory evidence. The submission still
612
+ * ships with the resolved variant on `submission.variant`; nothing about how
613
+ * any claim or line decodes is changed by this warning.
614
+ *
615
+ * It reports the RESOLUTION, not the document. A caller-supplied `opts.type`
616
+ * wins ahead of the fall-back, and so does an ST-03 naming one of the three
617
+ * known implementation-convention references, and in either case no guess was
618
+ * made and this code is not raised however mixed the body is.
619
+ *
620
+ * Which service segment is the stray one is deliberately not decided: this
621
+ * reader cannot tell a stray service segment from a conformant one, and the
622
+ * fall-back takes the first in the body whether or not a Loop 2400 was open
623
+ * at it. Distinct from {@link unknown837Variant}, which is raised where
624
+ * NOTHING resolved a variant; the two can never travel together, because a
625
+ * body with conflicting service segments has at least one to fall back on.
626
+ *
627
+ * `get837Claims` anchors this at the **ST**, which is `tx.segments[0]` and
628
+ * carries the ST-03 that would have settled the question. No `elementIndex`
629
+ * is set: the conflict is a property of the body rather than of an element,
630
+ * and one route into it is an ST-03 that is absent altogether.
631
+ *
632
+ * @example
633
+ * ```ts
634
+ * import { ambiguous837Variant } from "@cosyte/x12";
635
+ * const w = ambiguous837Variant({ segmentIndex: 0, transactionIndex: 0 });
636
+ * ```
637
+ */
638
+ declare function ambiguous837Variant(position: X12Position): X12ParseWarning;
578
639
  /**
579
640
  * Build an `X12_837_SERVICE_LINE_NOT_DECODED` warning. Emitted by the 837
580
641
  * helper when a Loop 2400 service line is closed without ever having
@@ -582,9 +643,11 @@ declare function unknown837Variant(position: X12Position): X12ParseWarning;
582
643
  * carries no SVx at all, or it carries one belonging to a different 837
583
644
  * variant than ST-03 (or the caller's `type` option) named. The line is
584
645
  * still retained, and every segment stays verbatim on the transaction set,
585
- * but the line's `charge` and `units` are the accumulator's seeded
586
- * `X12Decimal.ZERO` rather than anything read off the wire. `position`
587
- * names the LX segment that opened the line.
646
+ * but the line's `charge` and `units` are `undefined` rather than anything
647
+ * read off the wire. Through `0.0.12` they were the accumulator's seeded
648
+ * `X12Decimal.ZERO`, which a consumer could not tell from a charge of zero
649
+ * the sender did state. `position` names the LX segment that opened the
650
+ * line.
588
651
  *
589
652
  * @example
590
653
  * ```ts
@@ -636,7 +699,10 @@ declare function serviceLineDropped(position: X12Position): X12ParseWarning;
636
699
  * implementation convention, the reader falls back to the first
637
700
  * SV1 / SV2 / SV3 in the transaction, and a segment reported here is
638
701
  * eligible for that fallback like any other - pre-existing behaviour,
639
- * documented in `KNOWN-LIMITATIONS.md`.
702
+ * documented in `KNOWN-LIMITATIONS.md` and unchanged. Where that fallback
703
+ * decided the variant and the body names more than one,
704
+ * {@link ambiguous837Variant} reports the resolution as contested; it is
705
+ * additive and does not change which documents reach this code.
640
706
  *
641
707
  * @example
642
708
  * ```ts
@@ -645,6 +711,52 @@ declare function serviceLineDropped(position: X12Position): X12ParseWarning;
645
711
  * ```
646
712
  */
647
713
  declare function serviceSegmentWithoutLx(position: X12Position): X12ParseWarning;
714
+ /**
715
+ * Build an `X12_837_SERVICE_SEGMENT_REPEATED` warning. Emitted by the 837
716
+ * helper at the second and each subsequent `SV1` / `SV2` / `SV3` to arrive
717
+ * inside one open Loop 2400. `position` names the repeated service segment
718
+ * itself, which is the segment a consumer resolves back through
719
+ * `tx.segments`; there is no `elementIndex`, because what is reported is a
720
+ * second occurrence of the segment rather than a defect in any element of it.
721
+ *
722
+ * Once per repeat, so three service segments in one Loop 2400 are two
723
+ * warnings. The count lives on the line and is cleared when the line flushes,
724
+ * so a first service segment under a later `LX` is a first and never a
725
+ * repeat - a scope, not a latch.
726
+ *
727
+ * **The rule the reader applies, because a consumer cannot infer it from a
728
+ * one-slot model:** occurrences are never merged and the LAST one matching
729
+ * the submission's resolved variant wins, writing every slot its kind writes.
730
+ * So an earlier matching occurrence leaves nothing on the line, not even in a
731
+ * slot the later one's own element is absent from - there the later one's
732
+ * `undefined` replaces an amount the earlier one stated. Through `0.0.13` a
733
+ * charge of `8500` and a CPT of `99213` were replaced by a repeat's `12` and
734
+ * `99999` with `warnings: []`. An occurrence whose kind does NOT match the
735
+ * resolved variant is read into nothing and overwrites nothing.
736
+ *
737
+ * It reports that the DOCUMENT sent more than one, and asserts nothing about
738
+ * what usage the TR3s give the segment. It does not decide which occurrence
739
+ * the sender meant: this reader cannot tell a stray service segment from a
740
+ * conformant one, exactly as {@link ambiguous837Variant} records for the
741
+ * variant fallback.
742
+ *
743
+ * Disjoint from {@link serviceSegmentWithoutLx} by construction - that one
744
+ * fires only where no Loop 2400 is open and this one only where one is - so
745
+ * the two can never name the same segment. Read that as disjointness only:
746
+ * a service segment following an `LX` that opened no line is named by
747
+ * NEITHER, because {@link serviceLineDropped} at that `LX` already reports
748
+ * the loss and suppresses the orphan code. {@link serviceLineNotDecoded} is
749
+ * raised at the `LX` and reports that no matching service segment decoded
750
+ * onto the line at all; a document can carry both codes on different
751
+ * segments.
752
+ *
753
+ * @example
754
+ * ```ts
755
+ * import { serviceSegmentRepeated } from "@cosyte/x12";
756
+ * const w = serviceSegmentRepeated({ segmentIndex: 9, transactionIndex: 0 });
757
+ * ```
758
+ */
759
+ declare function serviceSegmentRepeated(position: X12Position): X12ParseWarning;
648
760
  /**
649
761
  * Build an `X12_837_ENTITY_SEGMENT_DISCARDED_AFTER_LX` warning. Emitted by
650
762
  * the 837 helper for an `N3` / `N4` / `PER` / `REF` that reached no party
@@ -674,6 +786,38 @@ declare function serviceSegmentWithoutLx(position: X12Position): X12ParseWarning
674
786
  * ```
675
787
  */
676
788
  declare function entitySegmentDiscardedAfterLx(position: X12Position): X12ParseWarning;
789
+ /**
790
+ * Build an `X12_837_PAY_TO_ADDRESS_REPEATED` warning. Emitted by the 837
791
+ * helper at the second and each subsequent `NM1*87` within one Loop 2000A,
792
+ * where the TR3s allow Loop 2010AB at most once. `position` names the
793
+ * repeated `NM1*87` itself, which is the segment a consumer resolves back
794
+ * through `tx.segments`; there is no `elementIndex`, because what is being
795
+ * reported is a second occurrence of the segment rather than a defect in
796
+ * any element of it.
797
+ *
798
+ * Once per repeat, so two repeats in one Loop 2000A are two warnings. The
799
+ * counter resets at the Loop 2000A `HL`, beside the pay-to slot it guards -
800
+ * a first `NM1*87` under a later billing provider is a first, not a repeat.
801
+ *
802
+ * It reports that the DOCUMENT named the pay-to address more than once. It
803
+ * does NOT report that anything was mis-read, and it is not a service-line
804
+ * or entity-segment code: nothing else on the channel says this, and this
805
+ * says nothing about the other 837 codes' subjects.
806
+ *
807
+ * **The rule the reader applies, because a consumer cannot infer it from a
808
+ * one-slot model:** occurrences are never merged, the last occurrence that
809
+ * states an address of its own wins, and an occurrence that states none does
810
+ * not blank one that did. "States an address" means exactly what the emit
811
+ * side would write a segment for - see `./address-segments.ts`, which both
812
+ * sides share so they cannot drift.
813
+ *
814
+ * @example
815
+ * ```ts
816
+ * import { payToAddressRepeated } from "@cosyte/x12";
817
+ * const w = payToAddressRepeated({ segmentIndex: 12, transactionIndex: 0 });
818
+ * ```
819
+ */
820
+ declare function payToAddressRepeated(position: X12Position): X12ParseWarning;
677
821
  /**
678
822
  * Build an `X12_UNKNOWN_CLAIM_STATUS_CATEGORY` warning. Emitted by the 277
679
823
  * / 277CA helpers when an STC composite's Claim Status Category Code
@@ -734,11 +878,13 @@ declare function unknownMaintenanceType(position: X12Position): X12ParseWarning;
734
878
  *
735
879
  * `position.elementIndex` is the 1-indexed element that failed, so a
736
880
  * consumer can go read the verbatim bytes off the segment. The message
737
- * takes NO discriminant and deliberately does not name which stand-in
738
- * landed: a reader may put `X12Decimal.ZERO` on a slot typed `X12Decimal`,
739
- * leave an optional slot `undefined`, or drop the row entirely, and the one
740
- * thing true of all three is that the number now in that slot is not the
741
- * sender's. Read the model field itself to see which happened.
881
+ * takes NO discriminant and deliberately does not name what landed in the
882
+ * slot instead: this library's own readers now either leave the slot
883
+ * `undefined` or drop the row entirely, and a reader built on
884
+ * {@link "./segment.js".elementDecimalOrZero} still substitutes
885
+ * `X12Decimal.ZERO`. The one thing true of all of them is that whatever
886
+ * occupies that slot is not the sender's. Read the model field itself to
887
+ * see which happened.
742
888
  *
743
889
  * @example
744
890
  * ```ts
@@ -747,6 +893,91 @@ declare function unknownMaintenanceType(position: X12Position): X12ParseWarning;
747
893
  * ```
748
894
  */
749
895
  declare function unparseableDecimal(position: X12Position): X12ParseWarning;
896
+ /**
897
+ * Build an `X12_AMOUNT_ROW_DROPPED` warning. Emitted where an `AMT` or `ADX`
898
+ * decoded no value from its amount element (AMT-02, ADX-01) and the reader
899
+ * therefore built no row at all, so the qualifier or adjustment reason code
900
+ * the sender did state is off the model with it.
901
+ *
902
+ * `position` names the `AMT` / `ADX` segment itself and carries NO
903
+ * `elementIndex`: one of the two routes here is an absent element, and an
904
+ * absent element has no index to name. The element the reader was reading is
905
+ * fixed by the segment anyway - AMT-02 or ADX-01 - so the segment locates the
906
+ * loss exactly.
907
+ *
908
+ * It is raised for BOTH routes to an undecoded amount, and
909
+ * {@link unparseableDecimal} is unchanged by it: a present-but-undecodable
910
+ * element still raises `X12_UNPARSEABLE_DECIMAL` at its own `elementIndex`,
911
+ * now ALONGSIDE this code rather than instead of it, so a consumer predicate
912
+ * written against that code alone still fires exactly where it did. The
913
+ * absent route raises this code and nothing else, which is what tells the two
914
+ * apart.
915
+ *
916
+ * Read the bound literally. This reports a row whose AMOUNT was read and
917
+ * decoded no value. A segment a reader discards before reading its amount is
918
+ * not on this channel, and neither is one whose amount decoded and then found
919
+ * nothing open to attach the row to. An 820 `RMR` is not on it either, for its
920
+ * own reason: `decodeRmr` drops on open-item IDENTITY, RMR-01 and RMR-02 both
921
+ * empty, before the amount is read - so an `RMR` that states an open item and
922
+ * no amount keeps its row with `amountPaid` `undefined`, while one that states
923
+ * an amount and no open item is dropped whole. That second case is a separate
924
+ * loss, as is an 837 `AMT` that decoded while a Loop 2430 adjudication was
925
+ * open; {@link statedAmountDiscarded} reports both and this code reports
926
+ * neither. Nothing is fabricated to stand in and the segments stay verbatim on
927
+ * the transaction set.
928
+ *
929
+ * @example
930
+ * ```ts
931
+ * import { amountRowDropped } from "@cosyte/x12";
932
+ * const w = amountRowDropped({ segmentIndex: 7, transactionIndex: 0 });
933
+ * ```
934
+ */
935
+ declare function amountRowDropped(position: X12Position): X12ParseWarning;
936
+ /**
937
+ * Build an `X12_STATED_AMOUNT_DISCARDED` warning. Emitted where a segment
938
+ * POPULATED its amount element, the loop that would carry its row was open,
939
+ * and the reader built no row anyway - for a reason that is not a failure to
940
+ * decode that amount. The money the sender wrote is on no part of the typed
941
+ * model. **This code asserts nothing about whether that amount is decodable**:
942
+ * route 2 below decoded it, route 1 never attempted the decode.
943
+ *
944
+ * Two routes, enumerated because a count without its list cannot correct
945
+ * itself:
946
+ *
947
+ * 1. An 820 `RMR` under an open remittance loop whose RMR-01 and RMR-02 are
948
+ * BOTH empty while RMR-04 or RMR-05 is populated. `decodeRmr` refuses the
949
+ * open item on identity before either amount element is read, so a stated
950
+ * payment, a stated amount due and the payment action code beside them are
951
+ * lost together.
952
+ * 2. An 837 `AMT` arriving while a Loop 2430 line adjudication (`SVD`) is
953
+ * open, whose AMT-02 decoded. The v1 adjudication model carries no amount
954
+ * row, so the row is skipped rather than attached to the service line,
955
+ * which is this reader's own line and not the other payer's.
956
+ *
957
+ * `position` names the `RMR` / `AMT` segment itself and carries NO
958
+ * `elementIndex`: on the first route the loss spans RMR-04 and RMR-05 and no
959
+ * single element names it, and on the second the element is fixed by the
960
+ * segment.
961
+ *
962
+ * Read the bound as a property of the READ. This does NOT report an `AMT` or
963
+ * `ADX` that reaches a reader with no loop open to carry its row at all: the
964
+ * 834's `AMT` with no `HD` open, the 820's `ADX` with no remittance open, and
965
+ * the 835's and the 837's `AMT` that decodes before any claim or service line
966
+ * is open are all still silent, and recorded in `KNOWN-LIMITATIONS.md`. It is
967
+ * additive: {@link unparseableDecimal} and {@link amountRowDropped} fire on
968
+ * exactly the documents they fired on before. On route 1 no
969
+ * `X12_UNPARSEABLE_DECIMAL` accompanies this code even where the amount bytes
970
+ * are unreadable, because that route never attempts the decode - so never read
971
+ * an unaccompanied instance as evidence the bytes are postable. Read them off
972
+ * the segment and decode them yourself.
973
+ *
974
+ * @example
975
+ * ```ts
976
+ * import { statedAmountDiscarded } from "@cosyte/x12";
977
+ * const w = statedAmountDiscarded({ segmentIndex: 9, transactionIndex: 0 });
978
+ * ```
979
+ */
980
+ declare function statedAmountDiscarded(position: X12Position): X12ParseWarning;
750
981
 
751
982
  /**
752
983
  * Type definitions for the `@cosyte/x12` profile subsystem (Phase 9).
@@ -3267,14 +3498,22 @@ interface X12Remittance {
3267
3498
  * ```ts
3268
3499
  * import type { X12RemitPaymentHeader } from "@cosyte/x12";
3269
3500
  * declare const p: X12RemitPaymentHeader;
3270
- * p.totalActualPayment.toString(); // "945.00"
3501
+ * p.totalActualPayment?.toString(); // "945.00", or undefined if none decoded
3271
3502
  * p.method; // "ACH"
3272
3503
  * p.paymentDate; // "20260601" (CCYYMMDD, verbatim)
3273
3504
  * ```
3274
3505
  */
3275
3506
  interface X12RemitPaymentHeader {
3276
3507
  readonly transactionHandlingCode: string;
3277
- readonly totalActualPayment: X12Decimal;
3508
+ /**
3509
+ * BPR-02, the amount the bank actually moved. `undefined` where this library decoded no value
3510
+ * from that element - it was absent or empty, or it held bytes that do
3511
+ * not decode as a decimal (which also emits `X12_UNPARSEABLE_DECIMAL` at
3512
+ * its `elementIndex`). Through `0.0.12` both cases read
3513
+ * `X12Decimal.ZERO`, indistinguishable from an amount of zero the sender
3514
+ * did state, and the balance invariants summed that fabricated zero.
3515
+ */
3516
+ readonly totalActualPayment: X12Decimal | undefined;
3278
3517
  /**
3279
3518
  * BPR-03 credit/debit flag. Spec-defined values: `"C"` (credit - money
3280
3519
  * to provider, the normal case) or `"D"` (debit - refund / chargeback,
@@ -3418,8 +3657,8 @@ interface X12RemitContact {
3418
3657
  * import type { X12RemitClaim } from "@cosyte/x12";
3419
3658
  * declare const c: X12RemitClaim;
3420
3659
  * c.patientControlNumber; // "PT-ACCT-001"
3421
- * c.totalChargeAmount.toString(); // "500.00"
3422
- * c.totalPaymentAmount.toString(); // "450.00"
3660
+ * c.totalChargeAmount?.toString(); // "500.00", or undefined if none decoded
3661
+ * c.totalPaymentAmount?.toString(); // "450.00", or undefined if none decoded
3423
3662
  * c.claimStatusCode; // "1" - Processed as Primary
3424
3663
  * c.serviceLines.length; // count of SVC loops
3425
3664
  * ```
@@ -3428,9 +3667,33 @@ interface X12RemitClaim {
3428
3667
  readonly patientControlNumber: string;
3429
3668
  readonly claimStatusCode: string;
3430
3669
  readonly claimStatusDescription: string | undefined;
3431
- readonly totalChargeAmount: X12Decimal;
3432
- readonly totalPaymentAmount: X12Decimal;
3433
- readonly patientResponsibilityAmount: X12Decimal;
3670
+ /**
3671
+ * CLP-03, the total submitted charge. `undefined` where this library decoded no value
3672
+ * from that element - it was absent or empty, or it held bytes that do
3673
+ * not decode as a decimal (which also emits `X12_UNPARSEABLE_DECIMAL` at
3674
+ * its `elementIndex`). Through `0.0.12` both cases read
3675
+ * `X12Decimal.ZERO`, indistinguishable from an amount of zero the sender
3676
+ * did state, and the balance invariants summed that fabricated zero.
3677
+ */
3678
+ readonly totalChargeAmount: X12Decimal | undefined;
3679
+ /**
3680
+ * CLP-04, the total amount paid on the claim. `undefined` where this library decoded no value
3681
+ * from that element - it was absent or empty, or it held bytes that do
3682
+ * not decode as a decimal (which also emits `X12_UNPARSEABLE_DECIMAL` at
3683
+ * its `elementIndex`). Through `0.0.12` both cases read
3684
+ * `X12Decimal.ZERO`, indistinguishable from an amount of zero the sender
3685
+ * did state, and the balance invariants summed that fabricated zero.
3686
+ */
3687
+ readonly totalPaymentAmount: X12Decimal | undefined;
3688
+ /**
3689
+ * CLP-05, the patient responsibility amount. `undefined` where this library decoded no value
3690
+ * from that element - it was absent or empty, or it held bytes that do
3691
+ * not decode as a decimal (which also emits `X12_UNPARSEABLE_DECIMAL` at
3692
+ * its `elementIndex`). Through `0.0.12` both cases read
3693
+ * `X12Decimal.ZERO`, indistinguishable from an amount of zero the sender
3694
+ * did state, and the balance invariants summed that fabricated zero.
3695
+ */
3696
+ readonly patientResponsibilityAmount: X12Decimal | undefined;
3434
3697
  readonly claimFilingIndicatorCode: string | undefined;
3435
3698
  readonly payerClaimControlNumber: string | undefined;
3436
3699
  readonly facilityTypeCode: string | undefined;
@@ -3467,14 +3730,22 @@ interface X12RemitClaim {
3467
3730
  * a.groupCode; // "PR" (patient responsibility)
3468
3731
  * a.reasonCode; // "1" (deductible)
3469
3732
  * a.reasonDescription; // "Deductible Amount"
3470
- * a.amount.toString(); // "50.00"
3733
+ * a.amount?.toString(); // "50.00", or undefined if none decoded
3471
3734
  * ```
3472
3735
  */
3473
3736
  interface X12RemitAdjustment {
3474
3737
  readonly groupCode: string;
3475
3738
  readonly reasonCode: string;
3476
3739
  readonly reasonDescription: string | undefined;
3477
- readonly amount: X12Decimal;
3740
+ /**
3741
+ * The CAS adjustment amount for this triple. `undefined` where this library decoded no value
3742
+ * from that element - it was absent or empty, or it held bytes that do
3743
+ * not decode as a decimal (which also emits `X12_UNPARSEABLE_DECIMAL` at
3744
+ * its `elementIndex`). Through `0.0.12` both cases read
3745
+ * `X12Decimal.ZERO`, indistinguishable from an amount of zero the sender
3746
+ * did state, and the balance invariants summed that fabricated zero.
3747
+ */
3748
+ readonly amount: X12Decimal | undefined;
3478
3749
  readonly quantity: X12Decimal | undefined;
3479
3750
  }
3480
3751
  /**
@@ -3593,16 +3864,32 @@ interface X12RemitRemark {
3593
3864
  * declare const s: X12RemitServiceLine;
3594
3865
  * s.productServiceIdQualifier; // "HC"
3595
3866
  * s.productServiceId; // "99213"
3596
- * s.chargeAmount.toString(); // "150.00"
3597
- * s.paymentAmount.toString(); // "135.00"
3867
+ * s.chargeAmount?.toString(); // "150.00", or undefined if none decoded
3868
+ * s.paymentAmount?.toString(); // "135.00", or undefined if none decoded
3598
3869
  * ```
3599
3870
  */
3600
3871
  interface X12RemitServiceLine {
3601
3872
  readonly productServiceIdQualifier: string;
3602
3873
  readonly productServiceId: string;
3603
3874
  readonly modifiers: readonly string[];
3604
- readonly chargeAmount: X12Decimal;
3605
- readonly paymentAmount: X12Decimal;
3875
+ /**
3876
+ * SVC-02, the line's submitted charge. `undefined` where this library decoded no value
3877
+ * from that element - it was absent or empty, or it held bytes that do
3878
+ * not decode as a decimal (which also emits `X12_UNPARSEABLE_DECIMAL` at
3879
+ * its `elementIndex`). Through `0.0.12` both cases read
3880
+ * `X12Decimal.ZERO`, indistinguishable from an amount of zero the sender
3881
+ * did state, and the balance invariants summed that fabricated zero.
3882
+ */
3883
+ readonly chargeAmount: X12Decimal | undefined;
3884
+ /**
3885
+ * SVC-03, the amount paid on the line. `undefined` where this library decoded no value
3886
+ * from that element - it was absent or empty, or it held bytes that do
3887
+ * not decode as a decimal (which also emits `X12_UNPARSEABLE_DECIMAL` at
3888
+ * its `elementIndex`). Through `0.0.12` both cases read
3889
+ * `X12Decimal.ZERO`, indistinguishable from an amount of zero the sender
3890
+ * did state, and the balance invariants summed that fabricated zero.
3891
+ */
3892
+ readonly paymentAmount: X12Decimal | undefined;
3606
3893
  /** SVC-04 - NUBC revenue code. Absent on a professional line. */
3607
3894
  readonly revenueCode: string | undefined;
3608
3895
  /** SVC-05 - Units of Service Paid Count: what the payer adjudicated. */
@@ -3647,7 +3934,7 @@ interface X12RemitServiceLine {
3647
3934
  * p.fiscalPeriodDate; // "20261231"
3648
3935
  * p.reasonCode; // "WO" (withholding)
3649
3936
  * p.subCode; // "123456" (related-claim reference)
3650
- * p.amount.toString();// "50.00"
3937
+ * p.amount?.toString();// "50.00", or undefined if none decoded
3651
3938
  * ```
3652
3939
  */
3653
3940
  interface X12RemitProviderAdjustment {
@@ -3655,7 +3942,15 @@ interface X12RemitProviderAdjustment {
3655
3942
  readonly fiscalPeriodDate: string;
3656
3943
  readonly reasonCode: string;
3657
3944
  readonly subCode: string | undefined;
3658
- readonly amount: X12Decimal;
3945
+ /**
3946
+ * The PLB adjustment amount, with its raw EDI sign. `undefined` where this library decoded no value
3947
+ * from that element - it was absent or empty, or it held bytes that do
3948
+ * not decode as a decimal (which also emits `X12_UNPARSEABLE_DECIMAL` at
3949
+ * its `elementIndex`). Through `0.0.12` both cases read
3950
+ * `X12Decimal.ZERO`, indistinguishable from an amount of zero the sender
3951
+ * did state, and the balance invariants summed that fabricated zero.
3952
+ */
3953
+ readonly amount: X12Decimal | undefined;
3659
3954
  }
3660
3955
 
3661
3956
  /**
@@ -3686,9 +3981,9 @@ interface X12RemitProviderAdjustment {
3686
3981
  * for (const tx of group.transactions) {
3687
3982
  * if (tx.st.elements[1] !== "835") continue;
3688
3983
  * const remit = get835(ix.delimiters, tx);
3689
- * remit?.payment.totalActualPayment.toString();
3984
+ * remit?.payment.totalActualPayment?.toString();
3690
3985
  * for (const claim of remit?.claims ?? []) {
3691
- * claim.totalPaymentAmount.toString();
3986
+ * claim.totalPaymentAmount?.toString();
3692
3987
  * }
3693
3988
  * }
3694
3989
  * }
@@ -4541,6 +4836,20 @@ declare const REMIT_835_LOOP_1000B: LoopSpec;
4541
4836
  * > slice with a forward-pointer to this module so the contract stays
4542
4837
  * > consistent.
4543
4838
  *
4839
+ * **A term that did not decode makes the equation UNEVALUABLE, and that is a
4840
+ * third outcome, not a failure.** Every amount these three checks read is
4841
+ * `X12Decimal | undefined` on the model, and `undefined` means this library
4842
+ * decoded no value from that element. Where any term of an invariant is
4843
+ * `undefined` the check emits
4844
+ * {@link "../../parser/warnings.js".WARNING_CODES.X12_835_BALANCE_NOT_EVALUABLE}
4845
+ * and never `X12_835_REMIT_BALANCE_MISMATCH`: the mismatch code asserts a
4846
+ * computed inequality between amounts the sender supplied, and there is no
4847
+ * such computation to report. Substituting `0` for the absent term is what
4848
+ * this library did through `0.0.12`, and it made "the payer paid nothing"
4849
+ * and "the payer said nothing" the same reading. An EMPTY list of
4850
+ * adjustments is NOT that case: it sums to `X12Decimal.ZERO`, because a
4851
+ * claim carrying no CAS really did state no adjustments.
4852
+ *
4544
4853
  * **PHI discipline: the message names the equation and carries no value at
4545
4854
  * all**, not even an amount. An EDI amount is a consumer-controlled element
4546
4855
  * like any other: `CLP-03` is whatever the payer sent, so the spec'd /
@@ -4634,14 +4943,14 @@ declare function checkServiceLineBalance(claim: X12RemitClaim, position: X12Posi
4634
4943
  * );
4635
4944
  * ```
4636
4945
  */
4637
- declare function checkRemitTotalBalance(bpr02: X12Decimal, claims: readonly X12RemitClaim[], providerAdjustments: readonly X12RemitProviderAdjustment[], position: X12Position): X12ParseWarning | undefined;
4946
+ declare function checkRemitTotalBalance(bpr02: X12Decimal | undefined, claims: readonly X12RemitClaim[], providerAdjustments: readonly X12RemitProviderAdjustment[], position: X12Position): X12ParseWarning | undefined;
4638
4947
 
4639
4948
  /**
4640
4949
  * Typed model for an X12 005010 837 Healthcare Claim - the three sibling
4641
- * TR3s (`005010X222A2` Professional / `005010X223A3` Institutional /
4642
- * `005010X224A2` Dental). The shape is the public contract of
4643
- * `get837Claims()` - adding fields is backward-compatible; renaming
4644
- * fields is breaking.
4950
+ * TR3 families (`005010X222` Professional / `005010X223` Institutional /
4951
+ * `005010X224` Dental, each together with its published errata). The shape
4952
+ * is the public contract of `get837Claims()` - adding fields is
4953
+ * backward-compatible; renaming fields is breaking.
4645
4954
  *
4646
4955
  * Spec source: WPC TR3s for X222A2 / X223A3 / X224A2 plus the X12 005010
4647
4956
  * base specification (envelope + segment definitions).
@@ -4653,10 +4962,15 @@ declare function checkRemitTotalBalance(bpr02: X12Decimal, claims: readonly X12R
4653
4962
  *
4654
4963
  * Variant discrimination. {@link X12Claim837Variant} drives the
4655
4964
  * service-line discriminated union ({@link X12_837ServiceLine}). The
4656
- * walker reads ST-03's implementation convention reference (X222A2 /
4657
- * X223A3 / X224A2) where present; otherwise infers from service-line
4965
+ * walker reads ST-03's implementation convention reference where it
4966
+ * recognises one (the table lives beside `get837Claims`, and the sources
4967
+ * every key came from are named there); otherwise infers from service-line
4658
4968
  * segment id (SV1 → P, SV2 → I, SV3 → D); otherwise marks the variant
4659
- * `"unknown"` and emits `X12_837_UNKNOWN_VARIANT`.
4969
+ * `"unknown"` and emits `X12_837_UNKNOWN_VARIANT`. That inference takes the
4970
+ * FIRST such segment in the body, whether or not a Loop 2400 was open at it,
4971
+ * and where the body names more than one variant it emits
4972
+ * `X12_837_AMBIGUOUS_VARIANT` as well: the variant it resolved is a guess,
4973
+ * and a caller's `type` option is what settles it.
4660
4974
  */
4661
4975
 
4662
4976
  /**
@@ -5019,7 +5333,7 @@ interface X12OtherSubscriber {
5019
5333
  * declare const c: X12Claim;
5020
5334
  * c.variant; // "P" / "I" / "D" / "unknown"
5021
5335
  * c.claimId; // CLM-01 (patient account number)
5022
- * c.totalCharge.toString(); // CLM-02 as X12Decimal
5336
+ * c.totalCharge?.toString(); // CLM-02 as X12Decimal, or undefined if none decoded
5023
5337
  * c.diagnoses[0]?.codeSystem; // "ICD-10-CM"
5024
5338
  * c.serviceLines.length; // count of LX/SVx loops
5025
5339
  * ```
@@ -5034,7 +5348,15 @@ interface X12Claim {
5034
5348
  readonly payer: X12ClaimEntity | undefined;
5035
5349
  readonly patient: X12ClaimMember | undefined;
5036
5350
  readonly claimId: string;
5037
- readonly totalCharge: X12Decimal;
5351
+ /**
5352
+ * CLM-02, the total claim charge. `undefined` where this library decoded
5353
+ * no value from that element - it was absent or empty, or it held bytes
5354
+ * that do not decode as a decimal (which also emits
5355
+ * `X12_UNPARSEABLE_DECIMAL` at its `elementIndex`). Through `0.0.12` both
5356
+ * cases read `X12Decimal.ZERO`, indistinguishable from a claim whose
5357
+ * charge really is zero.
5358
+ */
5359
+ readonly totalCharge: X12Decimal | undefined;
5038
5360
  readonly placeOfServiceCode: string | undefined;
5039
5361
  readonly facilityCodeQualifier: string | undefined;
5040
5362
  readonly claimFrequencyCode: string | undefined;
@@ -5076,8 +5398,25 @@ type X12_837ServiceLine = X12_837ServiceLineProfessional | X12_837ServiceLineIns
5076
5398
  /** Fields shared across every service-line variant. @internal */
5077
5399
  interface X12_837ServiceLineBase {
5078
5400
  readonly lineNumber: string;
5079
- readonly charge: X12Decimal;
5080
- readonly units: X12Decimal;
5401
+ /**
5402
+ * The service line's charge - SV1-02 (professional), SV2-03
5403
+ * (institutional) or SV3-02 (dental). `undefined` where this library
5404
+ * decoded no value from that element: it was absent or empty, it held
5405
+ * bytes that do not decode as a decimal (which also emits
5406
+ * `X12_UNPARSEABLE_DECIMAL`), or no SVx for the resolved variant was
5407
+ * decoded onto the line at all (which emits
5408
+ * `X12_837_SERVICE_LINE_NOT_DECODED` at the LX). Through `0.0.12` all
5409
+ * three read `X12Decimal.ZERO`, and a consumer could not tell any of them
5410
+ * from a line the sender charged nothing for.
5411
+ */
5412
+ readonly charge: X12Decimal | undefined;
5413
+ /**
5414
+ * The service line's unit count - SV1-04 (professional), SV2-05
5415
+ * (institutional) or SV3-06 (dental). `undefined` on the same three
5416
+ * conditions as {@link X12_837ServiceLineBase.charge}, and for the same
5417
+ * reason: a fabricated count is a count the sender never sent.
5418
+ */
5419
+ readonly units: X12Decimal | undefined;
5081
5420
  readonly unitOfMeasure: string | undefined;
5082
5421
  readonly placeOfServiceCode: string | undefined;
5083
5422
  readonly dates: readonly X12ClaimDate[];
@@ -5231,7 +5570,7 @@ interface X12LineDrug {
5231
5570
  * import type { X12LineAdjudication } from "@cosyte/x12";
5232
5571
  * declare const a: X12LineAdjudication;
5233
5572
  * a.otherPayerId; // "84320" (the other payer's id)
5234
- * a.amountPaid.toString(); // "50.00"
5573
+ * a.amountPaid?.toString(); // "50.00", or undefined if none decoded
5235
5574
  * a.procedureCode; // "99213"
5236
5575
  * a.adjustments[0]?.groupCode;// "CO"
5237
5576
  * a.dateAdjudicated; // "20260520" CCYYMMDD verbatim
@@ -5239,7 +5578,14 @@ interface X12LineDrug {
5239
5578
  */
5240
5579
  interface X12LineAdjudication {
5241
5580
  readonly otherPayerId: string;
5242
- readonly amountPaid: X12Decimal;
5581
+ /**
5582
+ * SVD-02, the amount the other payer paid on this line. `undefined` where
5583
+ * this library decoded no value from that element - absent, empty, or
5584
+ * bytes that do not decode (which also emits `X12_UNPARSEABLE_DECIMAL`).
5585
+ * Through `0.0.12` both cases read `X12Decimal.ZERO`, indistinguishable
5586
+ * from a payer that adjudicated the line to nothing.
5587
+ */
5588
+ readonly amountPaid: X12Decimal | undefined;
5243
5589
  readonly procedureQualifier: string | undefined;
5244
5590
  readonly procedureCode: string | undefined;
5245
5591
  readonly paidUnits: X12Decimal | undefined;
@@ -5340,7 +5686,7 @@ declare const NM1_QUALIFIERS: Readonly<{
5340
5686
  * const sub = get837Claims(ix.delimiters, tx);
5341
5687
  * sub?.variant; // "P" / "I" / "D" / "unknown"
5342
5688
  * for (const claim of sub?.claims ?? []) {
5343
- * claim.totalCharge.toString();
5689
+ * claim.totalCharge?.toString();
5344
5690
  * claim.diagnoses[0]?.codeSystem; // "ICD-10-CM"
5345
5691
  * }
5346
5692
  * }
@@ -5377,6 +5723,21 @@ declare function get837Claims(delimiters: Delimiters, tx: X12TransactionSet, opt
5377
5723
  * fixes GS-01 to `"HC"` and the ST-03 / GS-08 version to the variant's TR3
5378
5724
  * (`005010X222A2` / `X223A3` / `X224A2`) so the caller never hand-codes them.
5379
5725
  *
5726
+ * **🩺 Known limitation, disclosed rather than changed: those three are
5727
+ * published errata guides, but they are neither the identifiers HIPAA
5728
+ * adopts at 45 CFR 162.1102 nor the ones payer companion guides commonly
5729
+ * require in ST-03 / GS-08** (CMS and several state Medicaid guides state
5730
+ * `005010X222A1` for Professional, `005010X223A2` for Institutional and
5731
+ * `005010X224A2` for Dental). **A partner that requires one of those will
5732
+ * reject a Professional or Institutional 837 this builder emits, and there
5733
+ * is currently no way for a caller to override the value.** Nothing here
5734
+ * was re-stamped on that evidence: which published guide identifier a
5735
+ * trading partner accepts is a partner fact, not a spec fact, and silently
5736
+ * changing bytes this library already emitted would break the partners it
5737
+ * works with today. `KNOWN-LIMITATIONS.md` carries this as an open
5738
+ * residual. The READ side is unaffected - `get837Claims` recognises all of
5739
+ * these references.
5740
+ *
5380
5741
  * @example
5381
5742
  * ```ts
5382
5743
  * import type { Build837EnvelopeSpec } from "@cosyte/x12";
@@ -5729,10 +6090,19 @@ interface Build837ToothSpec {
5729
6090
  interface Build837ServiceLineBaseSpec {
5730
6091
  /** LX-01 - line number. Default: the 1-based index within the claim. */
5731
6092
  readonly lineNumber?: string;
5732
- /** SVx charge amount. */
6093
+ /** SVx charge amount - SV1-02 (P), SV2-03 (I) or SV3-02 (D). */
5733
6094
  readonly charge: X12Decimal;
5734
- /** SVx units of service. */
5735
- readonly units?: X12Decimal;
6095
+ /**
6096
+ * SVx units of service - SV1-04 (P), SV2-05 (I) or SV3-06 (D).
6097
+ *
6098
+ * **Required as of `0.0.13`.** Through `0.0.12` this was optional and an
6099
+ * omitted value was emitted as the literal `"0"`, so the builder stated a
6100
+ * service unit count the caller never supplied. It now refuses with
6101
+ * `X12_837_BUILD_INVALID_SPEC` instead, the same stance `build277` takes
6102
+ * for SVC-07: this builder will not invent a count, and will not leave the
6103
+ * element empty for the receiver to guess at either.
6104
+ */
6105
+ readonly units: X12Decimal;
5736
6106
  /** SVx unit/basis-of-measurement code (`UN`, `MJ`, …). */
5737
6107
  readonly unitOfMeasure?: string;
5738
6108
  /** DTP service-line dates. */
@@ -8718,14 +9088,22 @@ interface X12PremiumPayments {
8718
9088
  * ```ts
8719
9089
  * import type { X12PremiumPaymentHeader } from "@cosyte/x12";
8720
9090
  * declare const p: X12PremiumPaymentHeader;
8721
- * p.totalPremiumAmount.toString(); // "12500.00"
9091
+ * p.totalPremiumAmount?.toString(); // "12500.00", or undefined if none decoded
8722
9092
  * p.method; // "ACH"
8723
9093
  * p.paymentDate; // "20260601" (CCYYMMDD, verbatim)
8724
9094
  * ```
8725
9095
  */
8726
9096
  interface X12PremiumPaymentHeader {
8727
9097
  readonly transactionHandlingCode: string;
8728
- readonly totalPremiumAmount: X12Decimal;
9098
+ /**
9099
+ * BPR-02, the aggregate premium moved. `undefined` where this library decoded no value
9100
+ * from that element - it was absent or empty, or it held bytes that do
9101
+ * not decode as a decimal (which also emits `X12_UNPARSEABLE_DECIMAL` at
9102
+ * its `elementIndex`). Through `0.0.12` both cases read
9103
+ * `X12Decimal.ZERO`, indistinguishable from an amount of zero the sender
9104
+ * did state.
9105
+ */
9106
+ readonly totalPremiumAmount: X12Decimal | undefined;
8729
9107
  /**
8730
9108
  * BPR-03 credit/debit flag. Spec-defined `"C"` (credit) or `"D"` (debit);
8731
9109
  * typed `string` to preserve any verbatim non-spec value from a quirky
@@ -8915,14 +9293,22 @@ interface X12PremiumPerson {
8915
9293
  * declare const o: X12PremiumOpenItem;
8916
9294
  * o.qualifier; // "AZ"
8917
9295
  * o.referenceId; // "POL-0001"
8918
- * o.amountPaid.toString(); // "250.00"
9296
+ * o.amountPaid?.toString(); // "250.00", or undefined if none decoded
8919
9297
  * ```
8920
9298
  */
8921
9299
  interface X12PremiumOpenItem {
8922
9300
  readonly qualifier: string;
8923
9301
  readonly referenceId: string;
8924
9302
  readonly paymentActionCode: string | undefined;
8925
- readonly amountPaid: X12Decimal;
9303
+ /**
9304
+ * RMR-04, the amount paid against this open item. `undefined` where this library decoded no value
9305
+ * from that element - it was absent or empty, or it held bytes that do
9306
+ * not decode as a decimal (which also emits `X12_UNPARSEABLE_DECIMAL` at
9307
+ * its `elementIndex`). Through `0.0.12` both cases read
9308
+ * `X12Decimal.ZERO`, indistinguishable from an amount of zero the sender
9309
+ * did state.
9310
+ */
9311
+ readonly amountPaid: X12Decimal | undefined;
8926
9312
  readonly amountDue: X12Decimal | undefined;
8927
9313
  }
8928
9314
  /**
@@ -8974,9 +9360,9 @@ interface X12PremiumAdjustment {
8974
9360
  * const tx = ix.groups[0]?.transactions.find((t) => t.st.elements[1] === "820");
8975
9361
  * if (tx !== undefined) {
8976
9362
  * const prem = get820Payments(ix.delimiters, tx);
8977
- * prem?.payment.totalPremiumAmount.toString();
9363
+ * prem?.payment.totalPremiumAmount?.toString();
8978
9364
  * for (const r of prem?.remittances ?? []) {
8979
- * r.openItems[0]?.amountPaid.toString();
9365
+ * r.openItems[0]?.amountPaid?.toString();
8980
9366
  * }
8981
9367
  * }
8982
9368
  * ```
@@ -13346,4 +13732,4 @@ declare const profiles: {
13346
13732
  */
13347
13733
  declare const VERSION: string;
13348
13734
 
13349
- export { ACK_BUILD_ERROR_CODES, ALL_WARNING_MESSAGES, AUTH_278_BUILD_ERROR_CODES, AUTH_278_LOOP_2000A, AUTH_278_LOOP_2000B, AUTH_278_LOOP_2000C, AUTH_278_LOOP_2000D, AUTH_278_LOOP_2000E, AUTH_278_LOOP_2000F, AckBuildError, type AckBuildErrorCode, BALANCE_INVARIANTS, BUILD_REFUSAL_VALUE_MAX_LENGTH, BUILD_REFUSAL_VALUE_MAX_RENDERED, type Build271AddressSpec, type Build271BenefitSpec, type Build271DateSpec, type Build271DependentSpec, type Build271EntitySpec, type Build271EnvelopeSpec, type Build271InformationReceiverSpec, type Build271InformationSourceSpec, type Build271MemberSpec, type Build271ReferenceSpec, type Build271ServiceTypeSpec, type Build271Spec, type Build271SubscriberSpec, type Build271TraceSpec, type Build277ClaimSpec, type Build277DateSpec, type Build277DependentSpec, type Build277EntitySpec, type Build277EnvelopeSpec, type Build277InformationReceiverSpec, type Build277InformationSourceSpec, type Build277MemberSpec, type Build277ProviderSpec, type Build277ReferenceSpec, type Build277ServiceLineSpec, type Build277Spec, type Build277StatusCodeSpec, type Build277StatusSpec, type Build277SubscriberSpec, type Build277TraceSpec, type Build278DateSpec, type Build278DecisionSpec, type Build278DependentSpec, type Build278DiagnosisSpec, type Build278EntitySpec, type Build278EnvelopeSpec, type Build278HeaderSpec, type Build278MemberSpec, type Build278ReferenceSpec, type Build278ReviewSpec, type Build278Spec, type Build278SubscriberSpec, type Build278TraceSpec, type Build820AddressSpec, type Build820AdjustmentSpec, type Build820DateSpec, type Build820EntitySpec, type Build820EnvelopeSpec, type Build820OpenItemSpec, type Build820PartySpec, type Build820PaymentSpec, type Build820PersonSpec, type Build820ReferenceSpec, type Build820RemittanceSpec, type Build820Spec, type Build820TraceSpec, type Build834AddressSpec, type Build834AmountSpec, type Build834CoordinationOfBenefitsSpec, type Build834CoverageSpec, type Build834DateSpec, type Build834EnvelopeSpec, type Build834HeaderSpec, type Build834MemberNameSpec, type Build834MemberSpec, type Build834PartySpec, type Build834ReferenceSpec, type Build834Spec, type Build835AddressSpec, type Build835AdjustmentSpec, type Build835AmountSpec, type Build835ClaimSpec, type Build835ContactSpec, type Build835EnvelopeSpec, type Build835PartySpec, type Build835PaymentSpec, type Build835PersonSpec, type Build835ProviderAdjustmentSpec, type Build835ProviderSpec, type Build835ReferenceSpec, type Build835RemarkSpec, type Build835ServiceLineSpec, type Build835Spec, type Build835TraceSpec, type Build837AddressSpec, type Build837AdjudicationSpec, type Build837AdjustmentSpec, type Build837AmountSpec, type Build837BillingProviderSpec, type Build837ClaimSpec, type Build837ContactSpec, type Build837DateSpec, type Build837DrugSpec, type Build837EntitySpec, type Build837EnvelopeSpec, type Build837HiCodeSpec, type Build837NoteSpec, type Build837OtherSubscriberSpec, type Build837PatientSpec, type Build837ReferenceSpec, type Build837ServiceLineBaseSpec, type Build837ServiceLineDentalSpec, type Build837ServiceLineInstitutionalSpec, type Build837ServiceLineProfessionalSpec, type Build837ServiceLineSpec, type Build837Spec, type Build837SubscriberInfoSpec, type Build837SubscriberSpec, type Build837ToothSpec, type Build999ElementErrorSpec, type Build999EnvelopeSpec, type Build999FunctionalGroupSpec, type Build999SegmentErrorSpec, type Build999Spec, type Build999TransactionResponseSpec, type BuildTA1Options, type BuildTA1Spec, CARC, CLAIM_837D_LOOP_2000A, CLAIM_837D_LOOP_2300, CLAIM_837D_LOOP_2400, CLAIM_837I_LOOP_2000A, CLAIM_837I_LOOP_2300, CLAIM_837I_LOOP_2400, CLAIM_837P_LOOP_2000A, CLAIM_837P_LOOP_2300, CLAIM_837P_LOOP_2400, CLAIM_837P_LOOP_2410, CLAIM_837_BUILD_ERROR_CODES, CLAIM_837_LOOP_1000A, CLAIM_837_LOOP_1000B, CLAIM_837_LOOP_2010AA, CLAIM_837_LOOP_2010BA, CLAIM_837_LOOP_2010BB, CLAIM_837_LOOP_2010CA, CLAIM_837_LOOP_2430, CLAIM_ADJUSTMENT_GROUP_CODES, CLAIM_STATUS_277_BUILD_ERROR_CODES, CLAIM_STATUS_CATEGORY_CODES, CLAIM_STATUS_CODES, CLP_STATUS, CONTROL_NUMBER_PAIRS, Claim837BuildError, type Claim837BuildErrorCode, type ClaimAdjustmentGroupCode, ClaimStatus277BuildError, type ClaimStatus277BuildErrorCode, type CodeListEntry, type CodeListMeta, type CodeListSnapshot, DELIMITER_POSITIONS, type DefineLoopSpecInput, type Delimiters, ELIGIBILITY_271_BUILD_ERROR_CODES, ELIGIBILITY_271_LOOP_2000A, ELIGIBILITY_271_LOOP_2000B, ELIGIBILITY_271_LOOP_2000C, ELIGIBILITY_271_LOOP_2000D, ELIGIBILITY_271_LOOP_2100C, ELIGIBILITY_271_LOOP_2100D, ELIGIBILITY_271_LOOP_2110, ENROLLMENT_834_BUILD_ERROR_CODES, ENROLLMENT_834_LOOP_1000A, ENROLLMENT_834_LOOP_1000B, ENROLLMENT_834_LOOP_2000, ENROLLMENT_834_LOOP_2100A, ENROLLMENT_834_LOOP_2300, ENROLLMENT_834_LOOP_2320, Eligibility271BuildError, type Eligibility271BuildErrorCode, Enrollment834BuildError, type Enrollment834BuildErrorCode, FATAL_CODES, type FunctionalGroupSpec, type GeSegment, type GsSegment, HI_QUALIFIERS, HL_LEVEL_CODES, IK3_SYNTAX_ERROR_CODES, IK4_SYNTAX_ERROR_CODES, ISA_MIN_LENGTH, type IeaSegment, type Ik304Code, type Ik403Code, type InterchangeSpec, type IsaSegment, type LoopMax, type LoopSegmentSpec, type LoopSpec, LoopSpecDefinitionError, type LoopUsage, MAINTENANCE_TYPE_CODES, NM1_QUALIFIERS, NON_SPEC_SEGMENT_ID, type OnWarningCallback, PREMIUM_820_BUILD_ERROR_CODES, PREMIUM_820_LOOP_1000A, PREMIUM_820_LOOP_1000B, PREMIUM_820_LOOP_2000A, PREMIUM_820_LOOP_2100A, PREMIUM_820_LOOP_2300A, PREMIUM_820_LOOP_2310A, Premium820BuildError, type Premium820BuildErrorCode, RARC, RELEASE_CHAR, REMIT_835_BUILD_ERROR_CODES, REMIT_835_LOOP_1000A, REMIT_835_LOOP_1000B, REMIT_835_LOOP_2000, REMIT_835_LOOP_2100, REMIT_835_LOOP_2110, REQUIRED_LOOPS, Remit835BuildError, type Remit835BuildErrorCode, SERVICE_TYPE_CODES, STATUS_277_LOOP_2000A, STATUS_277_LOOP_2000B, STATUS_277_LOOP_2000C, STATUS_277_LOOP_2000D, STATUS_277_LOOP_2000E, STATUS_277_LOOP_2200, STATUS_277_LOOP_2220, type SegmentSpec, type SerializeOptions, ServicesReview278BuildError, type ServicesReview278BuildErrorCode, TA1_ACK_CODES, TA1_NOTE_CODES, type Ta1AckCode, type Ta1NoteCode, type Ta1Segment, type TransactionSetSpec, UNEXPECTED_SEGMENT_CONTEXTS, VERSION, WARNING_CODES, type X12Ack999, type X12Ack999Ak1, type X12Ack999Ak2, type X12Ack999Ak9, type X12Ack999ElementNote, type X12Ack999Ik3, type X12Ack999Ik4, type X12Ack999Ik4Position, type X12Ack999Ik5, type X12Ack999SegmentNote, type X12Ack999TransactionResponse, type X12AckDispositionCode, type X12AckTA1, type X12AuthDate, type X12AuthDiagnosis, type X12AuthEntity, type X12AuthHeader, type X12AuthMember, type X12AuthReference, type X12AuthTrace, type X12BalanceInvariant, X12BuildError, type X12BuildErrorCode, type X12Claim, type X12Claim837Variant, type X12ClaimAddress, type X12ClaimAmount, type X12ClaimContact, type X12ClaimDate, type X12ClaimEntity, type X12ClaimHiCode, type X12ClaimMember, type X12ClaimNote, type X12ClaimReference, type X12ClaimStatus, type X12ClaimStatusResponse, type X12ControlNumberPair, type X12CoordinationOfBenefits, X12Decimal, type X12DecimalRead, type X12DecimalStatus, type X12DecimalWarningSink, type X12Eligibility, type X12EligibilityAddress, type X12EligibilityBenefit, type X12EligibilityDate, type X12EligibilityDependent, type X12EligibilityEntity, type X12EligibilityMember, type X12EligibilityReference, type X12EligibilityServiceType, type X12EligibilitySubscriber, type X12EligibilityTrace, type X12Enrollment, type X12EnrollmentAddress, type X12EnrollmentAmount, type X12EnrollmentDate, type X12EnrollmentHeader, type X12EnrollmentMember, type X12EnrollmentParty, type X12EnrollmentReference, type X12FatalCode, type X12FunctionalGroup, type X12HealthCoverage, type X12HiCategory, type X12HiCodeSystem, type X12HiQualifier, type X12HierarchicalLevel, type X12Hl, type X12Interchange, type X12LineAdjudication, type X12LineDrug, type X12OrphanAnchor, type X12OrphanAnchorKind, type X12OrphanSegment, type X12OtherSubscriber, X12ParseError, type X12ParseOptions, type X12ParseWarning, type X12Position, type X12PremiumAddress, type X12PremiumAdjustment, type X12PremiumDate, type X12PremiumEntity, type X12PremiumOpenItem, type X12PremiumParty, type X12PremiumPaymentHeader, type X12PremiumPayments, type X12PremiumPerson, type X12PremiumReference, type X12PremiumRemittance, type X12PremiumTrace, type X12Profile, type X12ProfileDescription, type X12ProfileEffect, X12ProfileError, type X12ProfileQuirk, type X12ProfileSpec, type X12RemitAddress, type X12RemitAdjustment, type X12RemitAmount, type X12RemitClaim, type X12RemitContact, type X12RemitParty, type X12RemitPaymentHeader, type X12RemitPerson, type X12RemitProvider, type X12RemitProviderAdjustment, type X12RemitReference, type X12RemitRemark, type X12RemitServiceLine, type X12RemitTrace, type X12Remittance, type X12RequiredLoop, type X12ReviewDecision, type X12Segment, type X12ServiceLineStatus, type X12ServiceReview, type X12ServicesReview, type X12StatusCode, type X12StatusDate, type X12StatusEntity, type X12StatusInfo, type X12StatusMember, type X12StatusReference, type X12StatusTrace, type X12SubscriberInfo, type X12ToothInformation, type X12TransactionSet, type X12UnexpectedSegmentContext, type X12WarningCode, type X12WarningPartition, type X12_837ServiceLine, type X12_837ServiceLineDental, type X12_837ServiceLineInstitutional, type X12_837ServiceLineProfessional, type X12_837Submission, X12_ACK_DISPOSITION_CODES, X12_BUILD_ERROR_CODES, build271, build277, build277CA, build278Request, build278Response, build820, build834, build835, build837D, build837I, build837P, build999, buildInterchange, buildTA1, checkClaimBalance, checkRemitTotalBalance, checkServiceLineBalance, collectElementValues, componentOptional, controlNumberMismatch, danglingReleaseChar, decodeSegment, defineLoopSpec, defineProfile, detectDelimiters, elementDecimal, elementDecimalOrZero, elementOptional, elementValue, entitySegmentDiscardedAfterLx, escapeRelease, get271Eligibility, get277CADisposition, get277Status, get278Request, get278Response, get820Payments, get834Enrollments, get834Header, get835, get837Claims, getAllSegmentValues, getDefaultProfile, getSegmentValue, groupCountMismatch, hlParentLevelInvalid, hlParentMismatch, isAcceptDisposition, isClaimAdjustmentGroupCode, isDiagnosisQualifier, isProcedureQualifier, lookupCarc, lookupClaimStatus, lookupClaimStatusCategory, lookupClpStatus, lookupMaintenanceType, lookupRarc, lookupServiceType, missingGe, missingIea, missingRequiredLoop, missingSe, parse999, parseTA1, parseX12, partitionWarnings, pre005010, profiles, readElementDecimal, remitBalanceMismatch, renderCallerValue, resolveHiQualifier, segmentCountMismatch, serializeX12, serviceLineDropped, serviceLineNotDecoded, serviceSegmentWithoutLx, setDefaultProfile, trailingGarbage, transactionCountMismatch, unescapeRelease, unexpectedSegment, unknown837Variant, unknownCarc, unknownClaimStatus, unknownClaimStatusCategory, unknownHiQualifier, unknownMaintenanceType, unknownRarc, unparseableDecimal };
13735
+ export { ACK_BUILD_ERROR_CODES, ALL_WARNING_MESSAGES, AUTH_278_BUILD_ERROR_CODES, AUTH_278_LOOP_2000A, AUTH_278_LOOP_2000B, AUTH_278_LOOP_2000C, AUTH_278_LOOP_2000D, AUTH_278_LOOP_2000E, AUTH_278_LOOP_2000F, AckBuildError, type AckBuildErrorCode, BALANCE_INVARIANTS, BUILD_REFUSAL_VALUE_MAX_LENGTH, BUILD_REFUSAL_VALUE_MAX_RENDERED, type Build271AddressSpec, type Build271BenefitSpec, type Build271DateSpec, type Build271DependentSpec, type Build271EntitySpec, type Build271EnvelopeSpec, type Build271InformationReceiverSpec, type Build271InformationSourceSpec, type Build271MemberSpec, type Build271ReferenceSpec, type Build271ServiceTypeSpec, type Build271Spec, type Build271SubscriberSpec, type Build271TraceSpec, type Build277ClaimSpec, type Build277DateSpec, type Build277DependentSpec, type Build277EntitySpec, type Build277EnvelopeSpec, type Build277InformationReceiverSpec, type Build277InformationSourceSpec, type Build277MemberSpec, type Build277ProviderSpec, type Build277ReferenceSpec, type Build277ServiceLineSpec, type Build277Spec, type Build277StatusCodeSpec, type Build277StatusSpec, type Build277SubscriberSpec, type Build277TraceSpec, type Build278DateSpec, type Build278DecisionSpec, type Build278DependentSpec, type Build278DiagnosisSpec, type Build278EntitySpec, type Build278EnvelopeSpec, type Build278HeaderSpec, type Build278MemberSpec, type Build278ReferenceSpec, type Build278ReviewSpec, type Build278Spec, type Build278SubscriberSpec, type Build278TraceSpec, type Build820AddressSpec, type Build820AdjustmentSpec, type Build820DateSpec, type Build820EntitySpec, type Build820EnvelopeSpec, type Build820OpenItemSpec, type Build820PartySpec, type Build820PaymentSpec, type Build820PersonSpec, type Build820ReferenceSpec, type Build820RemittanceSpec, type Build820Spec, type Build820TraceSpec, type Build834AddressSpec, type Build834AmountSpec, type Build834CoordinationOfBenefitsSpec, type Build834CoverageSpec, type Build834DateSpec, type Build834EnvelopeSpec, type Build834HeaderSpec, type Build834MemberNameSpec, type Build834MemberSpec, type Build834PartySpec, type Build834ReferenceSpec, type Build834Spec, type Build835AddressSpec, type Build835AdjustmentSpec, type Build835AmountSpec, type Build835ClaimSpec, type Build835ContactSpec, type Build835EnvelopeSpec, type Build835PartySpec, type Build835PaymentSpec, type Build835PersonSpec, type Build835ProviderAdjustmentSpec, type Build835ProviderSpec, type Build835ReferenceSpec, type Build835RemarkSpec, type Build835ServiceLineSpec, type Build835Spec, type Build835TraceSpec, type Build837AddressSpec, type Build837AdjudicationSpec, type Build837AdjustmentSpec, type Build837AmountSpec, type Build837BillingProviderSpec, type Build837ClaimSpec, type Build837ContactSpec, type Build837DateSpec, type Build837DrugSpec, type Build837EntitySpec, type Build837EnvelopeSpec, type Build837HiCodeSpec, type Build837NoteSpec, type Build837OtherSubscriberSpec, type Build837PatientSpec, type Build837ReferenceSpec, type Build837ServiceLineBaseSpec, type Build837ServiceLineDentalSpec, type Build837ServiceLineInstitutionalSpec, type Build837ServiceLineProfessionalSpec, type Build837ServiceLineSpec, type Build837Spec, type Build837SubscriberInfoSpec, type Build837SubscriberSpec, type Build837ToothSpec, type Build999ElementErrorSpec, type Build999EnvelopeSpec, type Build999FunctionalGroupSpec, type Build999SegmentErrorSpec, type Build999Spec, type Build999TransactionResponseSpec, type BuildTA1Options, type BuildTA1Spec, CARC, CLAIM_837D_LOOP_2000A, CLAIM_837D_LOOP_2300, CLAIM_837D_LOOP_2400, CLAIM_837I_LOOP_2000A, CLAIM_837I_LOOP_2300, CLAIM_837I_LOOP_2400, CLAIM_837P_LOOP_2000A, CLAIM_837P_LOOP_2300, CLAIM_837P_LOOP_2400, CLAIM_837P_LOOP_2410, CLAIM_837_BUILD_ERROR_CODES, CLAIM_837_LOOP_1000A, CLAIM_837_LOOP_1000B, CLAIM_837_LOOP_2010AA, CLAIM_837_LOOP_2010BA, CLAIM_837_LOOP_2010BB, CLAIM_837_LOOP_2010CA, CLAIM_837_LOOP_2430, CLAIM_ADJUSTMENT_GROUP_CODES, CLAIM_STATUS_277_BUILD_ERROR_CODES, CLAIM_STATUS_CATEGORY_CODES, CLAIM_STATUS_CODES, CLP_STATUS, CONTROL_NUMBER_PAIRS, Claim837BuildError, type Claim837BuildErrorCode, type ClaimAdjustmentGroupCode, ClaimStatus277BuildError, type ClaimStatus277BuildErrorCode, type CodeListEntry, type CodeListMeta, type CodeListSnapshot, DELIMITER_POSITIONS, type DefineLoopSpecInput, type Delimiters, ELIGIBILITY_271_BUILD_ERROR_CODES, ELIGIBILITY_271_LOOP_2000A, ELIGIBILITY_271_LOOP_2000B, ELIGIBILITY_271_LOOP_2000C, ELIGIBILITY_271_LOOP_2000D, ELIGIBILITY_271_LOOP_2100C, ELIGIBILITY_271_LOOP_2100D, ELIGIBILITY_271_LOOP_2110, ENROLLMENT_834_BUILD_ERROR_CODES, ENROLLMENT_834_LOOP_1000A, ENROLLMENT_834_LOOP_1000B, ENROLLMENT_834_LOOP_2000, ENROLLMENT_834_LOOP_2100A, ENROLLMENT_834_LOOP_2300, ENROLLMENT_834_LOOP_2320, Eligibility271BuildError, type Eligibility271BuildErrorCode, Enrollment834BuildError, type Enrollment834BuildErrorCode, FATAL_CODES, type FunctionalGroupSpec, type GeSegment, type GsSegment, HI_QUALIFIERS, HL_LEVEL_CODES, IK3_SYNTAX_ERROR_CODES, IK4_SYNTAX_ERROR_CODES, ISA_MIN_LENGTH, type IeaSegment, type Ik304Code, type Ik403Code, type InterchangeSpec, type IsaSegment, type LoopMax, type LoopSegmentSpec, type LoopSpec, LoopSpecDefinitionError, type LoopUsage, MAINTENANCE_TYPE_CODES, NM1_QUALIFIERS, NON_SPEC_SEGMENT_ID, type OnWarningCallback, PREMIUM_820_BUILD_ERROR_CODES, PREMIUM_820_LOOP_1000A, PREMIUM_820_LOOP_1000B, PREMIUM_820_LOOP_2000A, PREMIUM_820_LOOP_2100A, PREMIUM_820_LOOP_2300A, PREMIUM_820_LOOP_2310A, Premium820BuildError, type Premium820BuildErrorCode, RARC, RELEASE_CHAR, REMIT_835_BUILD_ERROR_CODES, REMIT_835_LOOP_1000A, REMIT_835_LOOP_1000B, REMIT_835_LOOP_2000, REMIT_835_LOOP_2100, REMIT_835_LOOP_2110, REQUIRED_LOOPS, Remit835BuildError, type Remit835BuildErrorCode, SERVICE_TYPE_CODES, STATUS_277_LOOP_2000A, STATUS_277_LOOP_2000B, STATUS_277_LOOP_2000C, STATUS_277_LOOP_2000D, STATUS_277_LOOP_2000E, STATUS_277_LOOP_2200, STATUS_277_LOOP_2220, type SegmentSpec, type SerializeOptions, ServicesReview278BuildError, type ServicesReview278BuildErrorCode, TA1_ACK_CODES, TA1_NOTE_CODES, type Ta1AckCode, type Ta1NoteCode, type Ta1Segment, type TransactionSetSpec, UNEXPECTED_SEGMENT_CONTEXTS, VERSION, WARNING_CODES, type X12Ack999, type X12Ack999Ak1, type X12Ack999Ak2, type X12Ack999Ak9, type X12Ack999ElementNote, type X12Ack999Ik3, type X12Ack999Ik4, type X12Ack999Ik4Position, type X12Ack999Ik5, type X12Ack999SegmentNote, type X12Ack999TransactionResponse, type X12AckDispositionCode, type X12AckTA1, type X12AuthDate, type X12AuthDiagnosis, type X12AuthEntity, type X12AuthHeader, type X12AuthMember, type X12AuthReference, type X12AuthTrace, type X12BalanceInvariant, X12BuildError, type X12BuildErrorCode, type X12Claim, type X12Claim837Variant, type X12ClaimAddress, type X12ClaimAmount, type X12ClaimContact, type X12ClaimDate, type X12ClaimEntity, type X12ClaimHiCode, type X12ClaimMember, type X12ClaimNote, type X12ClaimReference, type X12ClaimStatus, type X12ClaimStatusResponse, type X12ControlNumberPair, type X12CoordinationOfBenefits, X12Decimal, type X12DecimalRead, type X12DecimalStatus, type X12DecimalWarningSink, type X12Eligibility, type X12EligibilityAddress, type X12EligibilityBenefit, type X12EligibilityDate, type X12EligibilityDependent, type X12EligibilityEntity, type X12EligibilityMember, type X12EligibilityReference, type X12EligibilityServiceType, type X12EligibilitySubscriber, type X12EligibilityTrace, type X12Enrollment, type X12EnrollmentAddress, type X12EnrollmentAmount, type X12EnrollmentDate, type X12EnrollmentHeader, type X12EnrollmentMember, type X12EnrollmentParty, type X12EnrollmentReference, type X12FatalCode, type X12FunctionalGroup, type X12HealthCoverage, type X12HiCategory, type X12HiCodeSystem, type X12HiQualifier, type X12HierarchicalLevel, type X12Hl, type X12Interchange, type X12LineAdjudication, type X12LineDrug, type X12OrphanAnchor, type X12OrphanAnchorKind, type X12OrphanSegment, type X12OtherSubscriber, X12ParseError, type X12ParseOptions, type X12ParseWarning, type X12Position, type X12PremiumAddress, type X12PremiumAdjustment, type X12PremiumDate, type X12PremiumEntity, type X12PremiumOpenItem, type X12PremiumParty, type X12PremiumPaymentHeader, type X12PremiumPayments, type X12PremiumPerson, type X12PremiumReference, type X12PremiumRemittance, type X12PremiumTrace, type X12Profile, type X12ProfileDescription, type X12ProfileEffect, X12ProfileError, type X12ProfileQuirk, type X12ProfileSpec, type X12RemitAddress, type X12RemitAdjustment, type X12RemitAmount, type X12RemitClaim, type X12RemitContact, type X12RemitParty, type X12RemitPaymentHeader, type X12RemitPerson, type X12RemitProvider, type X12RemitProviderAdjustment, type X12RemitReference, type X12RemitRemark, type X12RemitServiceLine, type X12RemitTrace, type X12Remittance, type X12RequiredLoop, type X12ReviewDecision, type X12Segment, type X12ServiceLineStatus, type X12ServiceReview, type X12ServicesReview, type X12StatusCode, type X12StatusDate, type X12StatusEntity, type X12StatusInfo, type X12StatusMember, type X12StatusReference, type X12StatusTrace, type X12SubscriberInfo, type X12ToothInformation, type X12TransactionSet, type X12UnexpectedSegmentContext, type X12WarningCode, type X12WarningPartition, type X12_837ServiceLine, type X12_837ServiceLineDental, type X12_837ServiceLineInstitutional, type X12_837ServiceLineProfessional, type X12_837Submission, X12_ACK_DISPOSITION_CODES, X12_BUILD_ERROR_CODES, ambiguous837Variant, amountRowDropped, balanceNotEvaluable, build271, build277, build277CA, build278Request, build278Response, build820, build834, build835, build837D, build837I, build837P, build999, buildInterchange, buildTA1, checkClaimBalance, checkRemitTotalBalance, checkServiceLineBalance, collectElementValues, componentOptional, controlNumberMismatch, danglingReleaseChar, decodeSegment, defineLoopSpec, defineProfile, detectDelimiters, elementDecimal, elementDecimalOrZero, elementOptional, elementValue, entitySegmentDiscardedAfterLx, escapeRelease, get271Eligibility, get277CADisposition, get277Status, get278Request, get278Response, get820Payments, get834Enrollments, get834Header, get835, get837Claims, getAllSegmentValues, getDefaultProfile, getSegmentValue, groupCountMismatch, hlParentLevelInvalid, hlParentMismatch, isAcceptDisposition, isClaimAdjustmentGroupCode, isDiagnosisQualifier, isProcedureQualifier, lookupCarc, lookupClaimStatus, lookupClaimStatusCategory, lookupClpStatus, lookupMaintenanceType, lookupRarc, lookupServiceType, missingGe, missingIea, missingRequiredLoop, missingSe, parse999, parseTA1, parseX12, partitionWarnings, payToAddressRepeated, pre005010, profiles, readElementDecimal, remitBalanceMismatch, renderCallerValue, resolveHiQualifier, segmentCountMismatch, serializeX12, serviceLineDropped, serviceLineNotDecoded, serviceSegmentRepeated, serviceSegmentWithoutLx, setDefaultProfile, statedAmountDiscarded, trailingGarbage, transactionCountMismatch, unescapeRelease, unexpectedSegment, unknown837Variant, unknownCarc, unknownClaimStatus, unknownClaimStatusCategory, unknownHiQualifier, unknownMaintenanceType, unknownRarc, unparseableDecimal };