@cosyte/x12 0.0.13 → 0.0.15

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.ts 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,6 +86,7 @@ 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";
89
91
  readonly X12_837_PAY_TO_ADDRESS_REPEATED: "X12_837_PAY_TO_ADDRESS_REPEATED";
90
92
  readonly X12_835_BALANCE_NOT_EVALUABLE: "X12_835_BALANCE_NOT_EVALUABLE";
@@ -602,6 +604,38 @@ declare function missingRequiredLoop(position: X12Position, loop: X12RequiredLoo
602
604
  * ```
603
605
  */
604
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;
605
639
  /**
606
640
  * Build an `X12_837_SERVICE_LINE_NOT_DECODED` warning. Emitted by the 837
607
641
  * helper when a Loop 2400 service line is closed without ever having
@@ -665,7 +699,10 @@ declare function serviceLineDropped(position: X12Position): X12ParseWarning;
665
699
  * implementation convention, the reader falls back to the first
666
700
  * SV1 / SV2 / SV3 in the transaction, and a segment reported here is
667
701
  * eligible for that fallback like any other - pre-existing behaviour,
668
- * 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.
669
706
  *
670
707
  * @example
671
708
  * ```ts
@@ -674,6 +711,52 @@ declare function serviceLineDropped(position: X12Position): X12ParseWarning;
674
711
  * ```
675
712
  */
676
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;
677
760
  /**
678
761
  * Build an `X12_837_ENTITY_SEGMENT_DISCARDED_AFTER_LX` warning. Emitted by
679
762
  * the 837 helper for an `N3` / `N4` / `PER` / `REF` that reached no party
@@ -2400,9 +2483,10 @@ declare function unescapeRelease(input: string, delimiters: Delimiters, emit: (w
2400
2483
  * the untyped-refusal defect this package has fixed elsewhere. This is a pure
2401
2484
  * text utility with no spec, no element and no caller context to name, so
2402
2485
  * `TypeError` is the accurate answer for a wrong-typed argument. **Nothing
2403
- * inside this library can reach it**: all nine builders route every element
2486
+ * inside this library can reach it**: every builder routes its elements
2404
2487
  * through `src/builder/caller-string.ts`, which refuses first with the calling
2405
- * builder's own typed, code-tagged error. This throw is the backstop for a
2488
+ * builder's own typed, code-tagged error. (No count: it is asserted by
2489
+ * `test/builder-string-type.test.ts` and was stale here.) This throw is the backstop for a
2406
2490
  * consumer calling the export directly, where the alternative was silent data
2407
2491
  * loss.
2408
2492
  *
@@ -4864,10 +4948,10 @@ declare function checkRemitTotalBalance(bpr02: X12Decimal | undefined, claims: r
4864
4948
 
4865
4949
  /**
4866
4950
  * Typed model for an X12 005010 837 Healthcare Claim - the three sibling
4867
- * TR3s (`005010X222A2` Professional / `005010X223A3` Institutional /
4868
- * `005010X224A2` Dental). The shape is the public contract of
4869
- * `get837Claims()` - adding fields is backward-compatible; renaming
4870
- * fields is breaking.
4951
+ * TR3 families (`005010X222` Professional / `005010X223` Institutional /
4952
+ * `005010X224` Dental, each together with its published errata). The shape
4953
+ * is the public contract of `get837Claims()` - adding fields is
4954
+ * backward-compatible; renaming fields is breaking.
4871
4955
  *
4872
4956
  * Spec source: WPC TR3s for X222A2 / X223A3 / X224A2 plus the X12 005010
4873
4957
  * base specification (envelope + segment definitions).
@@ -4879,10 +4963,15 @@ declare function checkRemitTotalBalance(bpr02: X12Decimal | undefined, claims: r
4879
4963
  *
4880
4964
  * Variant discrimination. {@link X12Claim837Variant} drives the
4881
4965
  * service-line discriminated union ({@link X12_837ServiceLine}). The
4882
- * walker reads ST-03's implementation convention reference (X222A2 /
4883
- * X223A3 / X224A2) where present; otherwise infers from service-line
4966
+ * walker reads ST-03's implementation convention reference where it
4967
+ * recognises one (the table lives beside `get837Claims`, and the sources
4968
+ * every key came from are named there); otherwise infers from service-line
4884
4969
  * segment id (SV1 → P, SV2 → I, SV3 → D); otherwise marks the variant
4885
- * `"unknown"` and emits `X12_837_UNKNOWN_VARIANT`.
4970
+ * `"unknown"` and emits `X12_837_UNKNOWN_VARIANT`. That inference takes the
4971
+ * FIRST such segment in the body, whether or not a Loop 2400 was open at it,
4972
+ * and where the body names more than one variant it emits
4973
+ * `X12_837_AMBIGUOUS_VARIANT` as well: the variant it resolved is a guess,
4974
+ * and a caller's `type` option is what settles it.
4886
4975
  */
4887
4976
 
4888
4977
  /**
@@ -5632,8 +5721,24 @@ declare function get837Claims(delimiters: Delimiters, tx: X12TransactionSet, opt
5632
5721
 
5633
5722
  /**
5634
5723
  * Interchange + group + transaction identity for the built 837. The builder
5635
- * fixes GS-01 to `"HC"` and the ST-03 / GS-08 version to the variant's TR3
5636
- * (`005010X222A2` / `X223A3` / `X224A2`) so the caller never hand-codes them.
5724
+ * fixes GS-01 to `"HC"`, and defaults the ST-03 / GS-08 reference to the
5725
+ * variant's TR3 (`005010X222A2` / `X223A3` / `X224A2`) so the caller never
5726
+ * has to hand-code it.
5727
+ *
5728
+ * **🩺 That default is not what every trading partner accepts, so
5729
+ * {@link Build837EnvelopeSpec.implementationConventionReference} overrides
5730
+ * it.** The three defaults are published errata guides, but they are
5731
+ * neither the identifiers HIPAA adopts at 45 CFR 162.1102 nor the ones
5732
+ * payer companion guides commonly require in ST-03 / GS-08 (CMS and several
5733
+ * state Medicaid guides state `005010X222A1` for Professional and
5734
+ * `005010X223A2` for Institutional). **A partner that requires one of those
5735
+ * will reject a Professional or Institutional 837 built on the default**,
5736
+ * and the override is how you send what your partner asked for. The default
5737
+ * itself was deliberately NOT re-stamped: which published guide identifier
5738
+ * a partner accepts is a partner fact rather than a spec fact, and changing
5739
+ * bytes this library already emitted would break the partners it works with
5740
+ * today. The READ side is unaffected - `get837Claims` recognises all of
5741
+ * these references.
5637
5742
  *
5638
5743
  * @example
5639
5744
  * ```ts
@@ -5661,6 +5766,44 @@ interface Build837EnvelopeSpec {
5661
5766
  readonly groupControlNumber: string;
5662
5767
  /** ST-02 / SE-02 - transaction set control number. */
5663
5768
  readonly transactionSetControlNumber: string;
5769
+ /**
5770
+ * 🩺 ST-03 **and** GS-08 - the implementation convention reference this
5771
+ * 837 declares. Default: the variant's TR3 (`005010X222A2` Professional,
5772
+ * `005010X223A3` Institutional, `005010X224A2` Dental).
5773
+ *
5774
+ * **Set it to whatever your trading partner's companion guide requires**,
5775
+ * for example `005010X222A1` on a professional claim to a payer that asks
5776
+ * for it. Which published identifier a partner accepts is a partner fact,
5777
+ * so this library will not choose for you: it defaults to a real published
5778
+ * guide and gets out of the way. **One value is written to both elements**,
5779
+ * because this builder has always written the same reference to ST-03 and
5780
+ * GS-08 and nothing grounds a caller making them differ. That is a statement
5781
+ * about the bytes this field emits, not about what each element may legally
5782
+ * hold: GS-08 is data element 480 (`AN 1/12`) and ST-03 is element 1705
5783
+ * (`AN 1/35`), and nothing here bounds the length.
5784
+ *
5785
+ * Refused, all `X12_837_BUILD_INVALID_SPEC`. An **empty** string, because a
5786
+ * trailing empty element is dropped on emit, so it would delete ST-03 and
5787
+ * GS-08 rather than send them empty. One carrying an **active delimiter or
5788
+ * the release character**, because these two elements cannot carry it even
5789
+ * escaped: the ST and GS segments are read by a splitter that is not
5790
+ * release-aware, so the declaration would silently become two elements. And
5791
+ * one **this library's own reader resolves to a different variant**
5792
+ * (`005010X223A2` handed to `build837P`): the file would declare one variant
5793
+ * and carry another's service segments, and `get837Claims` would then decode
5794
+ * none of its service lines. Those are what this field adds, on top of the
5795
+ * element-type guard every string slot already has, which refuses a
5796
+ * non-string with the same code - no total is published. **Anything else is
5797
+ * emitted as given** - the set of published errata is not provably
5798
+ * exhaustive, so an identifier this library does not carry is the caller's
5799
+ * call, not an error.
5800
+ *
5801
+ * 🩺 A guard on this element cannot make the element trustworthy. An active
5802
+ * delimiter in a DIFFERENT envelope field splits its own segment and shifts
5803
+ * every element after it, so ST-03 / GS-08 are then read out of a
5804
+ * neighbour's slot. `KNOWN-LIMITATIONS.md` carries the measurement.
5805
+ */
5806
+ readonly implementationConventionReference?: string;
5664
5807
  /** ISA-05 - interchange sender qualifier. Default `"ZZ"`. */
5665
5808
  readonly senderQualifier?: string;
5666
5809
  /** ISA-07 - interchange receiver qualifier. Default `"ZZ"`. */
@@ -6372,8 +6515,9 @@ interface Build837Spec {
6372
6515
 
6373
6516
  /**
6374
6517
  * `build837P` / `build837I` / `build837D` - pure-function builders for a
6375
- * 005010 837 Healthcare Claim (Professional `X222A2`, Institutional
6376
- * `X223A3`, Dental `X224A2`). NEVER auto-sends, NEVER opens a socket, NEVER
6518
+ * 005010 837 Healthcare Claim (Professional, Institutional, Dental; the
6519
+ * ST-03 / GS-08 guide reference defaults to `X222A2` / `X223A3` / `X224A2`
6520
+ * and the caller may state another). NEVER auto-sends, NEVER opens a socket, NEVER
6377
6521
  * touches the filesystem. The library mechanically emits the claim it is
6378
6522
  * told; a spec whose billing-provider → subscriber → (claims | patient)
6379
6523
  * tree cannot form a valid HL hierarchy is REFUSED via {@link
@@ -6402,7 +6546,9 @@ interface Build837Spec {
6402
6546
  */
6403
6547
 
6404
6548
  /**
6405
- * `build837P` - assemble a 005010X222A2 Professional 837 around the spec.
6549
+ * `build837P` - assemble a Professional 837 around the spec, declaring
6550
+ * `005010X222A2` unless `envelope.implementationConventionReference` states
6551
+ * the guide your trading partner requires.
6406
6552
  *
6407
6553
  * @example
6408
6554
  * ```ts
@@ -6434,8 +6580,10 @@ interface Build837Spec {
6434
6580
  */
6435
6581
  declare function build837P(spec: Build837Spec): X12Interchange;
6436
6582
  /**
6437
- * `build837I` - assemble a 005010X223A3 Institutional 837 around the spec.
6438
- * Service lines must be `variant: "I"` (SV2).
6583
+ * `build837I` - assemble an Institutional 837 around the spec, declaring
6584
+ * `005010X223A3` unless `envelope.implementationConventionReference` states
6585
+ * the guide your trading partner requires. Service lines must be
6586
+ * `variant: "I"` (SV2).
6439
6587
  *
6440
6588
  * @example
6441
6589
  * ```ts
@@ -6446,8 +6594,10 @@ declare function build837P(spec: Build837Spec): X12Interchange;
6446
6594
  */
6447
6595
  declare function build837I(spec: Build837Spec): X12Interchange;
6448
6596
  /**
6449
- * `build837D` - assemble a 005010X224A2 Dental 837 around the spec. Service
6450
- * lines must be `variant: "D"` (SV3); per-line tooth detail rides on TOO.
6597
+ * `build837D` - assemble a Dental 837 around the spec, declaring
6598
+ * `005010X224A2` unless `envelope.implementationConventionReference` states
6599
+ * the guide your trading partner requires. Service lines must be
6600
+ * `variant: "D"` (SV3); per-line tooth detail rides on TOO.
6451
6601
  *
6452
6602
  * @example
6453
6603
  * ```ts
@@ -12759,6 +12909,82 @@ declare function build999(spec: Build999Spec): X12Interchange;
12759
12909
  * library does NOT silently invent envelope bytes around it - the caller's
12760
12910
  * application boundary owns whether the TA1 is embedded in an outbound
12761
12911
  * interchange or sent as a standalone TA1-only interchange.
12912
+ *
12913
+ * ## 🩺 Why every element is released, and what that changed
12914
+ *
12915
+ * `raw` used to be `[...five caller values].join(elementSeparator)` with
12916
+ * nothing in between, so a caller value carrying an active delimiter took
12917
+ * a slot of its own and shifted every element after it down one. TA1-04 is
12918
+ * the disposition and TA1-05 the note, so the shift landed the read on the
12919
+ * wrong pair, and `parseTA1` narrows an out-of-enum TA1-04 to `R`:
12920
+ * **an Accept this library emitted read back as a Reject**, with the TA1-01
12921
+ * reassociation key merged into TA1-02 and `warnings: []` on every channel.
12922
+ * The inverse is the less safe one and also existed: a `noteCode` of
12923
+ * literally `"A"` (a value the type forbids and nothing checks at run time)
12924
+ * shifted onto TA1-04 and made a **Reject read back as an Accept**, which a
12925
+ * sender never resubmits against.
12926
+ *
12927
+ * The grounding is inside the package, not in a spec clause, which is the
12928
+ * same tiebreak `X12-ENVELOPE-SPLITTER-NOT-RELEASE-AWARE` recorded: one
12929
+ * function disagreed with itself. This module emitted bytes that this
12930
+ * package's own reader decoded into a different disposition than the one
12931
+ * the caller asked for, and every other builder already released the same
12932
+ * class of element through the same helper.
12933
+ *
12934
+ * **It changes bytes, and that is the cost that kept it open for a slice.**
12935
+ * A value containing none of the four delimiters or the release character
12936
+ * is emitted byte-for-byte as before, which is every conformant TA1. A
12937
+ * value containing one is now released, so its bytes differ from the ones
12938
+ * `0.0.14` and earlier put on the wire. What that costs is stated outright
12939
+ * below rather than argued away, and **without a total**: two drafts of this
12940
+ * account published a closed one and both were refuted.
12941
+ *
12942
+ * - **The consumer predicate moves in BOTH directions.** Read the property
12943
+ * rather than a direction list: `parseTA1` of a `buildTA1` output now
12944
+ * reports the disposition and note the CALLER passed, where before it
12945
+ * reported whatever element the shift left in TA1-04. So
12946
+ * `ackCode === "R"` stops firing where an Accept had been shifted onto
12947
+ * it, and starts firing where a Reject had been shifted off it -
12948
+ * `interchangeTime: "12*A"` with `ackCode: "R"` read `"A"` before and
12949
+ * reads `"R"` here, every field a valid member of its union. What is
12950
+ * one-directional is the safety, which is a different statement.
12951
+ * - **Only three values in the escaped set ever shifted the segment's own
12952
+ * element framing**: the element separator, the segment terminator, and
12953
+ * a `?` immediately before the separator. **`^` and `:` moved the
12954
+ * dot-path reader instead, and releasing them is a GAIN there.**
12955
+ * `getSegmentValue(ta1, "01")` answered `"0000"` before for a control
12956
+ * number of `"0000^0001"`, truncating the reassociation key to the first
12957
+ * repetition, and answers `"0000^0001"` here; the composite read `"01-1"`
12958
+ * answered `"0000"` for `"0000:0001"`. **The measured pure cost is a
12959
+ * MID-STRING `?`, and only on the surfaces documented as raw**: `raw`,
12960
+ * `elements` and `parseTA1`'s fields read `"0000??0001"` where they read
12961
+ * `"0000?0001"`, while the dot-path read of THAT value unescapes and
12962
+ * answered `"0000?0001"` on both. Read the clause as scoped to the
12963
+ * mid-string `?`, because it is not true of `^` or `:` three sentences
12964
+ * up. **`getSegmentValue` takes an `X12Segment` and `Ta1Segment` carries
12965
+ * no `id`, so add one to read a TA1 through it.** No total is published:
12966
+ * that is what was measured, not a closed account.
12967
+ * - **`parseTA1` reads elements RAW, pre-`?`-unescape**, exactly as
12968
+ * `X12Segment.elements` has always documented. So a control number of
12969
+ * `"00000001?"` now reads back as `"00000001??"` rather than as
12970
+ * `"00000001?*260601"`. The disposition is correct where it was
12971
+ * inverted; the key still needs `unescapeRelease` applied by the reader.
12972
+ * That is a property of the read half and is not changed here.
12973
+ * - **A caller who was pre-releasing the value themselves** (the remedy
12974
+ * `KNOWN-LIMITATIONS.md` named while this was open) is now escaping
12975
+ * twice: `"00000001??"` in, `"00000001????"` out. The framing and the
12976
+ * disposition stay correct, and this one regresses on BOTH kinds of
12977
+ * surface - the dot-path read answers `"00000001??"` where it answered
12978
+ * `"00000001?"`. Drop the hand-rolled escape.
12979
+ *
12980
+ * **And an EMPTY control number is still not refused.** `escapeRelease`
12981
+ * early-returns on `""` and this module has no required-field guard, so
12982
+ * `interchangeControlNumber: ""` emits `TA1**260601*1200*A*000` with no
12983
+ * error, here and at every earlier release. Only a NON-string refuses.
12984
+ *
12985
+ * And the release is scoped to the delimiter set the caller states through
12986
+ * {@link BuildTA1Options} - see that interface for why guessing one is a
12987
+ * value corruption rather than a safe default.
12762
12988
  */
12763
12989
 
12764
12990
  /**
@@ -12773,7 +12999,18 @@ declare function build999(spec: Build999Spec): X12Interchange;
12773
12999
  * - `ackCode === "A"` paired with `noteCode !== "000"` →
12774
13000
  * {@link "./errors.js".ACK_BUILD_ERROR_CODES.X12_TA1_ACCEPT_WITH_NOTE}.
12775
13001
  * Accept must mean accept. Use `E` (accept with errors) when the
12776
- * inbound had structural defects you elected to ignore.
13002
+ * inbound had structural defects you elected to ignore. This one runs
13003
+ * FIRST and its precedence is unchanged.
13004
+ * - Any of the five element values that is not a `string` →
13005
+ * {@link "./errors.js".ACK_BUILD_ERROR_CODES.X12_ACK_INVALID_SPEC}. This
13006
+ * is not a bonus guard: releasing a value means routing it through
13007
+ * {@link "../../builder/caller-string.js".makeCallerEscaper}, and the
13008
+ * bare `escapeRelease` underneath it returns its empty accumulator for a
13009
+ * `number`, so escaping without the type check would have replaced the
13010
+ * shifted-element defect with a silently VANISHED TA1-01. **A number or
13011
+ * an `undefined` control number used to emit as `TA1*12345*…` (the
13012
+ * number surviving onto `elements`, in a `readonly string[]`) or
13013
+ * `TA1**250101*…`; both now refuse.**
12777
13014
  *
12778
13015
  * @param spec - The TA1 fields. `interchangeControlNumber` echoes the
12779
13016
  * inbound ISA-13; `interchangeDate` / `interchangeTime` echo
@@ -12811,13 +13048,28 @@ declare function build999(spec: Build999Spec): X12Interchange;
12811
13048
  */
12812
13049
  declare function buildTA1(spec: BuildTA1Spec, options?: BuildTA1Options): Ta1Segment;
12813
13050
  /**
12814
- * Options accepted by {@link buildTA1}. Both fields are optional - pass
12815
- * none for the cosyte default envelope (`*` element separator). Override
12816
- * only when the TA1 is being embedded in an outer envelope whose declared
12817
- * delimiters differ from the cosyte default.
13051
+ * Options accepted by {@link buildTA1}: the delimiter set the returned
13052
+ * segment will be read against. Every field is optional and defaults to the
13053
+ * cosyte parser archetype (`*` element, `^` repetition, `:` component, `~`
13054
+ * segment), which is the same four `build999` takes on
13055
+ * {@link "./types.js".Build999EnvelopeSpec}.
13056
+ *
13057
+ * **The three non-element fields exist for ESCAPING and nothing else.**
13058
+ * `buildTA1` still emits no segment terminator, no repetition and no
13059
+ * composite. It has to know them because a caller value carrying one of
13060
+ * them has to be released, and because escaping a byte that is NOT a
13061
+ * delimiter where the segment lands corrupts the value: `unescapeRelease`
13062
+ * preserves `?X` verbatim for any `X` outside the declared set, so a value
13063
+ * released against a guessed delimiter comes back carrying a stray `?`.
13064
+ * **If you embed a TA1 in an envelope whose delimiters are not the
13065
+ * archetype, state them here** - the defaults are an assumption this
13066
+ * function cannot verify, exactly as they were before it escaped anything.
12818
13067
  */
12819
13068
  interface BuildTA1Options {
12820
13069
  readonly elementSeparator?: string;
13070
+ readonly repetitionSeparator?: string;
13071
+ readonly componentSeparator?: string;
13072
+ readonly segmentTerminator?: string;
12821
13073
  }
12822
13074
 
12823
13075
  /**
@@ -13629,4 +13881,4 @@ declare const profiles: {
13629
13881
  */
13630
13882
  declare const VERSION: string;
13631
13883
 
13632
- 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, 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, serviceSegmentWithoutLx, setDefaultProfile, statedAmountDiscarded, trailingGarbage, transactionCountMismatch, unescapeRelease, unexpectedSegment, unknown837Variant, unknownCarc, unknownClaimStatus, unknownClaimStatusCategory, unknownHiQualifier, unknownMaintenanceType, unknownRarc, unparseableDecimal };
13884
+ 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 };