@kreiseck/kasseneck-api 0.9.3 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/dist/cjs/kasse/settings.d.ts +10 -2
  3. package/dist/cjs/kasse/settings.js +10 -2
  4. package/dist/cjs/payments/hobex-hps/index.d.ts +2 -2
  5. package/dist/cjs/payments/hobex-hps/index.js +36 -1
  6. package/dist/cjs/payments/hobex-hps/outcome.d.ts +20 -1
  7. package/dist/cjs/payments/hobex-hps/outcome.js +11 -0
  8. package/dist/cjs/payments/hobex-hps/payments.d.ts +19 -0
  9. package/dist/cjs/payments/hobex-hps/payments.js +160 -33
  10. package/dist/cjs/payments/hobex-hps/transaction-response.d.ts +180 -31
  11. package/dist/cjs/payments/hobex-hps/transaction-response.js +308 -88
  12. package/dist/cjs/payments/index.d.ts +1 -1
  13. package/dist/cjs/payments/index.js +8 -1
  14. package/dist/esm/kasse/settings.d.ts +10 -2
  15. package/dist/esm/kasse/settings.js +10 -2
  16. package/dist/esm/payments/hobex-hps/index.d.ts +2 -2
  17. package/dist/esm/payments/hobex-hps/index.js +2 -2
  18. package/dist/esm/payments/hobex-hps/outcome.d.ts +20 -1
  19. package/dist/esm/payments/hobex-hps/outcome.js +10 -0
  20. package/dist/esm/payments/hobex-hps/payments.d.ts +19 -0
  21. package/dist/esm/payments/hobex-hps/payments.js +161 -34
  22. package/dist/esm/payments/hobex-hps/transaction-response.d.ts +180 -31
  23. package/dist/esm/payments/hobex-hps/transaction-response.js +302 -87
  24. package/dist/esm/payments/index.d.ts +1 -1
  25. package/dist/esm/payments/index.js +1 -1
  26. package/fixtures/hobex-hps-codes.json +365 -15
  27. package/fixtures/kasse-settings-standard.json +1 -1
  28. package/fixtures/kasse-texte.json +1 -1
  29. package/fixtures/oberflaeche.json +2 -1
  30. package/package.json +1 -1
@@ -5,7 +5,7 @@
5
5
  * ein, es reicht den Terminal-Rumpf roh durch — die Einordnung passiert hier.
6
6
  *
7
7
  * **Zwilling:** `kasseneck_api/lib/src/hobex_hps/transaction_response.dart`.
8
- * Beide Seiten pinnen dieselbe Codetabelle, siehe `HPS_MEASURED_CODES` unten
8
+ * Beide Seiten pinnen dieselbe Codetabelle, siehe `HPS_CODES` unten
9
9
  * und `fixtures/hobex-hps-codes.json`.
10
10
  *
11
11
  * **`responseCode !== '0'` ist NICHT die Pruefung auf eine Ablehnung.** Genau
@@ -18,7 +18,7 @@
18
18
  *
19
19
  * [isConclusive] ist die einzige Stelle, an der ein Code zu einem Ausgang
20
20
  * wird — und sie ist eine ECHTE Positivliste: nur ein Code, dessen Bedeutung
21
- * GEMESSEN und in [HPS_MEASURED_CODES] benannt ist, zaehlt. Jeder andere —
21
+ * feststeht und in [HPS_CODES] benannt ist, zaehlt. Jeder andere —
22
22
  * auch ein neuer, heute noch unbekannter Code — ist eine Wissensluecke, siehe
23
23
  * [isUnknownCode]. Am 27.08.2026 hat der Dart-Zwilling gemessen, warum die
24
24
  * Gegenrichtung ("jeder Code ausser 9027 ist schluessig") gefaehrlich ist: ein
@@ -26,54 +26,121 @@
26
26
  * schluessig und haette eine Zahlung, unter der tatsaechlich Geld geflossen
27
27
  * sein kann, als `declined` gemeldet.
28
28
  */
29
- /** Ein Ergebniscode, dessen Bedeutung GEMESSEN und hier benannt ist. */
29
+ /** Wie ein Ergebniscode den Ausgang eines Vorgangs bestimmt. */
30
+ export type HpsCodeEffect =
31
+ /** Schreibt den Ausgang fest: `'0'` genehmigt, jeder andere abgelehnt. */
32
+ 'conclusive'
33
+ /** Gemessen oder dokumentiert, aber KEINE Aussage (9027, 9900, 100011). */
34
+ | 'noStatement'
35
+ /**
36
+ * Der Host war beteiligt, das Terminal storniert nicht selbst -- ob belastet
37
+ * wurde, weiss das Terminal nicht. Weiterklaeren, aber ohne dass ein
38
+ * spaeteres `9027` daraus "nichts belastet" machen darf (siehe `payments.ts`).
39
+ */
40
+ | 'hostUncertain';
41
+ /** Woher die Bedeutung eines Codes stammt. */
42
+ export type HpsCodeSource =
43
+ /** Am Geraet gemessen (`doc/kartenzahlung.md` im Dart-Zwilling). */
44
+ 'measured'
45
+ /** Aus der Antwortcodeliste von hobex (erhalten 11.09.2026). */
46
+ | 'documented'
47
+ /** Beides. */
48
+ | 'measuredAndDocumented';
49
+ /**
50
+ * Worauf eine Kasse reagiert -- der Grund hinter einem Ergebniscode. Mehrere
51
+ * Codes teilen sich einen Grund, wenn am Tresen dasselbe zu tun ist
52
+ * (`100004`, `100005`, `100012`: "Karte nicht gelesen, noch einmal"). Der Satz
53
+ * fuer den Bediener steht in [HPS_REASON_HINTS]; eine Kasse mit eigener
54
+ * Uebersetzung schluesselt ueber den Grund selbst.
55
+ */
56
+ export type HpsCodeReason = 'approved' | 'aborted' | 'noCard' | 'cardReadFailed' | 'cardDeclined' | 'wrongPin' | 'amountInvalid' | 'tipNotSelected' | 'terminalBusy' | 'terminalBlocked' | 'terminalSetup' | 'terminalFault' | 'requestRejected' | 'invalidTransaction' | 'refundPassword' | 'refundDisabled' | 'hostTimeoutReversed' | 'hostFault' | 'internalError' | 'canceled' | 'notAbortable' | 'noStatement' | 'technicalError' | 'unknown';
57
+ /** Der Satz fuer den Bediener je Grund, deutsch. */
58
+ export declare const HPS_REASON_HINTS: Readonly<Record<HpsCodeReason, string>>;
59
+ /**
60
+ * Die beiden Gruende hinter einem Code mit `effect: 'hostUncertain'`: ob Geld
61
+ * geflossen ist, weiss das Terminal nicht.
62
+ */
63
+ export declare function isHostUncertainReason(reason: HpsCodeReason | undefined): boolean;
64
+ /** Ein Ergebniscode, dessen Bedeutung feststeht (gemessen oder dokumentiert). */
30
65
  export interface HpsMeasuredCode {
31
66
  /** Der Ergebniscode, wie ihn das Terminal im Feld `responseCode` sendet. */
32
67
  readonly code: string;
33
- /** Bedeutung, wie gemessen — deutsch, ohne Umlaute (siehe Vorbild). */
68
+ /** Bedeutung — deutsch, ohne Umlaute (siehe Vorbild). */
34
69
  readonly meaning: string;
35
70
  /**
36
71
  * `true`: der Code schreibt einen Ausgang fest (Teil der Positivliste,
37
- * siehe [isConclusive]). `false`: gemessen und benannt, aber ausdruecklich
38
- * KEINE Aussage ueber den Vorgang (9027, 9900).
72
+ * siehe [isConclusive]). `false`: benannt, aber KEINE Aussage ueber den
73
+ * Vorgang -- oder ein ungewisser Host-Ausgang, siehe [HpsCode.effect].
39
74
  */
40
75
  readonly conclusive: boolean;
41
76
  }
77
+ /** Ein Eintrag der vollstaendigen Codetabelle [HPS_CODES]. */
78
+ export interface HpsCode extends HpsMeasuredCode {
79
+ /** Titel, wie hobex ihn fuehrt bzw. das Terminal als `responseText` sendet. */
80
+ readonly title: string;
81
+ readonly effect: HpsCodeEffect;
82
+ readonly reason: HpsCodeReason;
83
+ readonly source: HpsCodeSource;
84
+ /**
85
+ * Der Code weist die ANFRAGE selbst ab (TID, Form, Geraetezustand). Auf eine
86
+ * Zahlung ist das deren Ablehnung; auf eine STATUSABFRAGE heisst es nur, dass
87
+ * diese Abfrage nicht bedient wurde -- ueber den gesuchten Vorgang sagt es
88
+ * nichts (gemessen fuer `100108`). Siehe [isConclusiveAsStatus].
89
+ */
90
+ readonly rejectsRequest: boolean;
91
+ }
42
92
  /**
43
- * Die gemessene Codetabelle — Vertrag mit dem Dart-Zwilling, siehe
44
- * `fixtures/hobex-hps-codes.json`. Gemessen an einem hobex-HPS (TID 3600335,
45
- * HPS 1.10.0, Firmware 7.3.6, 26.–28.08.2026).
93
+ * Die vollstaendige Codetabelle — Vertrag mit dem Dart-Zwilling
94
+ * (`HpsCodes.all` in `lib/src/hobex_hps/response_codes.dart`), ausgegeben als
95
+ * `fixtures/hobex-hps-codes.json`.
96
+ *
97
+ * Zwei Quellen: GEMESSEN an hobex-HPS-Geraeten (TID 3600335, HPS 1.10.0,
98
+ * Firmware 7.3.6, 26.–28.08.2026; TID 3556988 im Betrieb) und die
99
+ * Antwortcodeliste von hobex (erhalten 11.09.2026). Die Regel bleibt: nur ein
100
+ * Code mit feststehender Bedeutung schreibt einen Ausgang fest -- die Liste des
101
+ * Herstellers ist eine solche Feststellung, kein Raten aus der Codefamilie.
102
+ *
103
+ * Eingeordnet wird danach, WO im Ablauf ein dokumentierter Code entsteht:
104
+ * - vor dem Host (Anfrage, Karte, EMV-Kernel, Eingaben, Geraetezustand) ->
105
+ * `conclusive`, also `declined`;
106
+ * - `100029`, Zeitueberschreitung zum Host MIT auto-reversal -> ebenfalls
107
+ * `declined`, das Terminal storniert laut hobex selbst;
108
+ * - beim oder nach dem Host OHNE auto-reversal, dazu der Sammelcode `100999`
109
+ * -> `hostUncertain`.
46
110
  *
47
- * Reihenfolge ist die im Messprotokoll (`doc/kartenzahlung.md` im
48
- * Dart-Zwilling) — numerisch aufsteigend zu sortieren wuerde beim Diff
49
- * gegen die Vertragsdatei nichts gewinnen und macht Aenderungen schwerer
50
- * nachzuverfolgen.
111
+ * Reihenfolge: zuerst die gemessenen wie im Messprotokoll, dann die
112
+ * dokumentierten aufsteigend -- identisch mit dem Dart-Zwilling.
113
+ */
114
+ export declare const HPS_CODES: readonly HpsCode[];
115
+ /**
116
+ * @deprecated Seit 0.10.0 [HPS_CODES] -- die Tabelle fuehrt nicht mehr nur
117
+ * gemessene Codes. Gleicher Inhalt, bleibt fuer bestehende Aufrufer.
51
118
  */
52
119
  export declare const HPS_MEASURED_CODES: readonly HpsMeasuredCode[];
53
120
  /** `responseCode` einer genehmigten Zahlung. */
54
121
  export declare const APPROVED_CODE = "0";
55
- /** Siehe [HPS_MEASURED_CODES]: ungueltiger Vorgang, nichts passiert. */
122
+ /** Siehe [HPS_CODES]: ungueltiger Vorgang, nichts passiert. */
56
123
  export declare const INVALID_TRANSACTION_CODE = "9002";
57
- /** Siehe [HPS_MEASURED_CODES]: aufgehoben. */
124
+ /** Siehe [HPS_CODES]: aufgehoben. */
58
125
  export declare const TRANSACTION_CANCELED_CODE = "9011";
59
- /** Siehe [HPS_MEASURED_CODES]: keine Aussage. */
126
+ /** Siehe [HPS_CODES]: keine Aussage. */
60
127
  export declare const NO_STATEMENT_CODE = "9027";
61
- /** Siehe [HPS_MEASURED_CODES]: Kennung nicht numerisch, keine Aussage. */
128
+ /** Siehe [HPS_CODES]: Kennung nicht numerisch, keine Aussage. */
62
129
  export declare const TECHNICAL_ERROR_CODE = "9900";
63
- /** Siehe [HPS_MEASURED_CODES]: abgebrochen. */
130
+ /** Siehe [HPS_CODES]: abgebrochen. */
64
131
  export declare const ABORTED_CODE = "100002";
65
- /** Siehe [HPS_MEASURED_CODES]: Karte nicht aufgelegt. */
132
+ /** Siehe [HPS_CODES]: Karte nicht aufgelegt. */
66
133
  export declare const CARD_NOT_PRESENT_CODE = "100003";
67
- /** Siehe [HPS_MEASURED_CODES]: nicht mehr abbrechbar. */
134
+ /** Siehe [HPS_CODES]: nicht mehr abbrechbar. */
68
135
  export declare const NOT_ABORTABLE_CODE = "100010";
69
- /** Siehe [HPS_MEASURED_CODES]: Betrag abgewiesen, vor dem Kartenfluss. */
136
+ /** Siehe [HPS_CODES]: Betrag abgewiesen, vor dem Kartenfluss. */
70
137
  export declare const INVALID_AMOUNT_CODE = "9003";
71
- /** Siehe [HPS_MEASURED_CODES]: Betrag ausserhalb des zulaessigen Bereichs. */
138
+ /** Siehe [HPS_CODES]: Betrag ausserhalb des zulaessigen Bereichs. */
72
139
  export declare const AMOUNT_OUT_OF_RANGE_CODE = "100019";
73
- /** Siehe [HPS_MEASURED_CODES]: Terminal-Kennung unbekannt. */
140
+ /** Siehe [HPS_CODES]: Terminal-Kennung unbekannt. */
74
141
  export declare const INVALID_TID_CODE = "100108";
75
142
  /**
76
- * Siehe [HPS_MEASURED_CODES]: Host-Ablehnung, falsche PIN -- nichts belastet.
143
+ * Siehe [HPS_CODES]: Host-Ablehnung, falsche PIN -- nichts belastet.
77
144
  *
78
145
  * Zweistellig, weil ein Antwortcode des HOSTS (ISO 8583, 55 = "Incorrect
79
146
  * PIN"), kein `9xxx`-Terminalcode und kein `100xxx`-Code der HPS-Anwendung.
@@ -84,6 +151,58 @@ export declare const INVALID_TID_CODE = "100108";
84
151
  * dann nicht 9027 antwortet, sondern mit dem Code selbst.
85
152
  */
86
153
  export declare const WRONG_PIN_CODE = "55";
154
+ /** `100001` "Bad Request" -- nichts belastet. */
155
+ export declare const BAD_REQUEST_CODE = "100001";
156
+ /** `100004` "Card read failed" -- nichts belastet. Im Betrieb am 28.08.2026 gesehen. */
157
+ export declare const CARD_READ_FAILED_CODE = "100004";
158
+ /** `100005` "App select failed" -- nichts belastet. Im Betrieb am 28.08.2026 gesehen. */
159
+ export declare const APP_SELECT_FAILED_CODE = "100005";
160
+ /** `100006` "Communication with TecsXml failed" (No auto-reversal) -- ungewiss. */
161
+ export declare const HOST_COMMUNICATION_FAILED_CODE = "100006";
162
+ /** `100007` "Processing of TecsXml step failed" (No auto-reversal) -- ungewiss. */
163
+ export declare const HOST_STEP_FAILED_CODE = "100007";
164
+ /** `100008` "Invalid TID" laut hobex; gemessen wurde [INVALID_TID_CODE]. */
165
+ export declare const INVALID_TID_DOCUMENTED_CODE = "100008";
166
+ /** `100009` "Invalid Tx Type" -- nichts belastet. */
167
+ export declare const INVALID_TX_TYPE_CODE = "100009";
168
+ /** `100011` "Not Found" -- keine Aussage, aber ohne die Zwei-9027-Regel. */
169
+ export declare const NOT_FOUND_CODE = "100011";
170
+ /** `100012` "Max retries exceeded" -- nichts belastet. */
171
+ export declare const MAX_RETRIES_EXCEEDED_CODE = "100012";
172
+ /** `100013` "Diagnosis failed" -- nichts belastet. */
173
+ export declare const DIAGNOSIS_FAILED_CODE = "100013";
174
+ /** `100014` "Card information wasn't entered" (MOTO) -- nichts belastet. */
175
+ export declare const CARD_INFO_NOT_ENTERED_CODE = "100014";
176
+ /** `100015` "Card declined" (EMV-Kernel) -- nichts belastet. Im Betrieb am 28. und 31.08.2026 gesehen. */
177
+ export declare const CARD_DECLINED_CODE = "100015";
178
+ /** `100017` "Card Not Supported" -- nichts belastet. */
179
+ export declare const CARD_NOT_SUPPORTED_CODE = "100017";
180
+ /** `100018` "Scep enrollment failed" -- nichts belastet. */
181
+ export declare const SCEP_ENROLLMENT_FAILED_CODE = "100018";
182
+ /** `100020` "Refund password is invalid" -- nichts ausgezahlt. */
183
+ export declare const REFUND_PASSWORD_INVALID_CODE = "100020";
184
+ /** `100021` "Failed to enter the password" -- nichts ausgezahlt. */
185
+ export declare const PASSWORD_NOT_ENTERED_CODE = "100021";
186
+ /** `100022` "Terminal is blocked" -- nichts belastet. */
187
+ export declare const TERMINAL_BLOCKED_CODE = "100022";
188
+ /** `100023` "Invalid message type" -- ungewiss. */
189
+ export declare const INVALID_MESSAGE_TYPE_CODE = "100023";
190
+ /** `100024` "Transaction completion has failed" -- ungewiss. */
191
+ export declare const COMPLETION_FAILED_CODE = "100024";
192
+ /** `100025` "Refund transactions are disabled" -- nichts ausgezahlt. */
193
+ export declare const REFUND_DISABLED_CODE = "100025";
194
+ /** `100026` "Transaction was declined." (Chip-Daten fuer eine Karte ohne Chip) -- ungewiss. */
195
+ export declare const CHIP_DATA_MISMATCH_CODE = "100026";
196
+ /** `100027` "Unsupported UserData in TecsXml Response" -- ungewiss. */
197
+ export declare const UNSUPPORTED_USER_DATA_CODE = "100027";
198
+ /** `100028` "Tip selection process has failed." -- nichts belastet. */
199
+ export declare const TIP_SELECTION_FAILED_CODE = "100028";
200
+ /** `100029` "Communication with TecsXml timeout" (auto-reversal) -- nichts belastet. */
201
+ export declare const HOST_TIMEOUT_REVERSED_CODE = "100029";
202
+ /** `100998` "Terminal is busy" -- nichts belastet; gemessen als HTTP [TERMINAL_BUSY_HTTP_STATUS]. */
203
+ export declare const TERMINAL_BUSY_CODE = "100998";
204
+ /** `100999` "Internal Error" -- Sammelcode, ungewiss. */
205
+ export declare const INTERNAL_ERROR_CODE = "100999";
87
206
  /**
88
207
  * HTTP `409` ("Terminal is busy"): das Terminal serialisiert und weist eine
89
208
  * zweite Anfrage ab, waehrend eine erste noch laeuft. Am 27.08.2026 gemessen:
@@ -91,12 +210,19 @@ export declare const WRONG_PIN_CODE = "55";
91
210
  * Spur (die Statusabfrage auf seine Kennung liefert weiterhin
92
211
  * [NO_STATEMENT_CODE]).
93
212
  *
94
- * Bewusst KEIN Eintrag in [HPS_MEASURED_CODES]: es ist ein HTTP-Status, kein
213
+ * Bewusst KEIN Eintrag in [HPS_CODES]: es ist ein HTTP-Status, kein
95
214
  * `responseCode` — er entsteht, bevor ueberhaupt ein Antwortrumpf gelesen
96
215
  * wird. Siehe `errors.ts` (`HpsConnectTerminalError.isTerminalBusy`) fuer die
97
216
  * getrennte Auswertung.
98
217
  */
99
218
  export declare const TERMINAL_BUSY_HTTP_STATUS = 409;
219
+ /** Der Eintrag zu [code] in [HPS_CODES], oder `undefined`, wenn seine Bedeutung nicht feststeht. */
220
+ export declare function hpsCodeInfo(code: string | undefined): HpsCode | undefined;
221
+ /**
222
+ * Der Grund zu [code] -- `'unknown'` fuer einen Code ausserhalb der Tabelle,
223
+ * `undefined` ohne Code.
224
+ */
225
+ export declare function hpsCodeReason(code: string | undefined): HpsCodeReason | undefined;
100
226
  /** Antwort des Terminals — Zahlung, Statusabfrage oder Abbruch. */
101
227
  export interface HpsTransactionResponse {
102
228
  /** Kennung dieser Transaktion, wie vom Terminal bestaetigt bzw. echoed. */
@@ -148,7 +274,13 @@ export declare function isApproved(res: Pick<HpsTransactionResponse, 'responseCo
148
274
  export declare function isInProgress(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
149
275
  /** `true`, wenn ein Abbruch daran scheiterte, dass der Vorgang nicht mehr abbrechbar war. */
150
276
  export declare function isNotAbortable(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
151
- /** `true`, wenn das Terminal zu dieser Kennung keine Auskunft gibt (9027). */
277
+ /**
278
+ * `true`, wenn das Terminal zu dieser Kennung keine Auskunft gibt (9027).
279
+ *
280
+ * Bewusst NUR `9027`, nicht auch [NOT_FOUND_CODE] (`100011`): auf `9027` ruht
281
+ * die Zwei-9027-Regel in `payments.ts`, und die ist fuer genau diesen Code
282
+ * gemessen. `100011` ist dokumentiert, aber nie gesehen.
283
+ */
152
284
  export declare function isNoStatement(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
153
285
  /** `true`, wenn das Terminal einen technischen Fehler meldet (9900). */
154
286
  export declare function isTechnicalError(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
@@ -163,13 +295,30 @@ export declare function isTechnicalError(res: Pick<HpsTransactionResponse, 'resp
163
295
  export declare function isCanceled(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
164
296
  /**
165
297
  * `true`, wenn diese Antwort ueberhaupt eine Aussage ueber den Ausgang
166
- * traegt — ein Ergebniscode, der in [HPS_MEASURED_CODES] als `conclusive`
167
- * gefuehrt wird. Die einzige Stelle, an der ein Code zu einem Ausgang wird.
298
+ * traegt — ein Ergebniscode, der in [HPS_CODES] als `conclusive` gefuehrt
299
+ * wird. Die einzige Stelle, an der ein Code zu einem Ausgang wird.
168
300
  */
169
301
  export declare function isConclusive(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
170
302
  /**
171
- * `true`, wenn ein Ergebniscode VORHANDEN ist, aber weder schluessig noch
172
- * eine der beiden gemessenen Wissensluecken ([isNoStatement],
173
- * [isTechnicalError]) — ein Code, den dieses Modell schlicht nicht kennt.
303
+ * Wie [isConclusive], aber fuer die Antwort auf eine STATUSABFRAGE: ein Code,
304
+ * der die Anfrage selbst abweist (`rejectsRequest`, etwa `100022` "Terminal is
305
+ * blocked" oder `100108` "Invalid TID"), sagt dort nichts ueber den gesuchten
306
+ * Vorgang. Als `declined` gelesen, hiesse ein gesperrtes Terminal "die Zahlung
307
+ * ist nicht belastet".
308
+ */
309
+ export declare function isConclusiveAsStatus(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
310
+ /**
311
+ * `true`, wenn der Code einen Ausgang meldet, den das Terminal selbst nicht
312
+ * kennt: der hobex-Host war beteiligt, und das Terminal storniert nicht von
313
+ * sich aus (`effect: 'hostUncertain'`). Ein spaeteres `9027` auf die
314
+ * Statusabfrage heisst dann NICHT "nichts belastet" -- es spiegelt nur den
315
+ * Speicher des Terminals, nicht den des Hosts.
316
+ */
317
+ export declare function isHostUncertain(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
318
+ /**
319
+ * `true`, wenn ein Ergebniscode VORHANDEN ist, dessen Bedeutung aber nicht
320
+ * feststeht -- er fehlt in [HPS_CODES]. Ein Code, den dieses Modell schlicht
321
+ * nicht kennt; anders als [isNoStatement], [isTechnicalError] und
322
+ * [isHostUncertain], die eine Wissensluecke ueber den VORGANG benennen.
174
323
  */
175
324
  export declare function isUnknownCode(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;