@kreiseck/kasseneck-api 0.6.7

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 (294) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +2 -0
  3. package/README.md +206 -0
  4. package/dist/cjs/client/api.d.ts +75 -0
  5. package/dist/cjs/client/api.js +40 -0
  6. package/dist/cjs/client/auth.d.ts +52 -0
  7. package/dist/cjs/client/auth.js +72 -0
  8. package/dist/cjs/client/cashregisters.d.ts +21 -0
  9. package/dist/cjs/client/cashregisters.js +36 -0
  10. package/dist/cjs/client/errors.d.ts +159 -0
  11. package/dist/cjs/client/errors.js +226 -0
  12. package/dist/cjs/client/index.d.ts +8 -0
  13. package/dist/cjs/client/index.js +44 -0
  14. package/dist/cjs/client/receipts.d.ts +245 -0
  15. package/dist/cjs/client/receipts.js +452 -0
  16. package/dist/cjs/client/reports.d.ts +43 -0
  17. package/dist/cjs/client/reports.js +73 -0
  18. package/dist/cjs/client/status.d.ts +43 -0
  19. package/dist/cjs/client/status.js +47 -0
  20. package/dist/cjs/client/transport.d.ts +117 -0
  21. package/dist/cjs/client/transport.js +312 -0
  22. package/dist/cjs/enums/credit-card-provider.d.ts +22 -0
  23. package/dist/cjs/enums/credit-card-provider.js +23 -0
  24. package/dist/cjs/enums/define-enum.d.ts +15 -0
  25. package/dist/cjs/enums/define-enum.js +16 -0
  26. package/dist/cjs/enums/index.d.ts +7 -0
  27. package/dist/cjs/enums/index.js +17 -0
  28. package/dist/cjs/enums/keck-payment-method.d.ts +57 -0
  29. package/dist/cjs/enums/keck-payment-method.js +23 -0
  30. package/dist/cjs/enums/receipt-type.d.ts +41 -0
  31. package/dist/cjs/enums/receipt-type.js +18 -0
  32. package/dist/cjs/enums/stripe-link-mode.d.ts +17 -0
  33. package/dist/cjs/enums/stripe-link-mode.js +18 -0
  34. package/dist/cjs/enums/vat-rate.d.ts +40 -0
  35. package/dist/cjs/enums/vat-rate.js +19 -0
  36. package/dist/cjs/enums/voucher-action.d.ts +10 -0
  37. package/dist/cjs/enums/voucher-action.js +11 -0
  38. package/dist/cjs/enums/voucher-type.d.ts +9 -0
  39. package/dist/cjs/enums/voucher-type.js +10 -0
  40. package/dist/cjs/index.d.ts +5 -0
  41. package/dist/cjs/index.js +97 -0
  42. package/dist/cjs/kasse/artikel.d.ts +83 -0
  43. package/dist/cjs/kasse/artikel.js +79 -0
  44. package/dist/cjs/kasse/client.d.ts +10 -0
  45. package/dist/cjs/kasse/client.js +38 -0
  46. package/dist/cjs/kasse/drucker.d.ts +54 -0
  47. package/dist/cjs/kasse/drucker.js +41 -0
  48. package/dist/cjs/kasse/index.d.ts +11 -0
  49. package/dist/cjs/kasse/index.js +38 -0
  50. package/dist/cjs/kasse/settings.d.ts +115 -0
  51. package/dist/cjs/kasse/settings.js +62 -0
  52. package/dist/cjs/models/cancellation.d.ts +51 -0
  53. package/dist/cjs/models/cancellation.js +45 -0
  54. package/dist/cjs/models/cashregister.d.ts +77 -0
  55. package/dist/cjs/models/cashregister.js +53 -0
  56. package/dist/cjs/models/enum-payload.d.ts +26 -0
  57. package/dist/cjs/models/enum-payload.js +50 -0
  58. package/dist/cjs/models/hobex-receipt.d.ts +63 -0
  59. package/dist/cjs/models/hobex-receipt.js +86 -0
  60. package/dist/cjs/models/index.d.ts +10 -0
  61. package/dist/cjs/models/index.js +46 -0
  62. package/dist/cjs/models/receipt-company.d.ts +71 -0
  63. package/dist/cjs/models/receipt-company.js +52 -0
  64. package/dist/cjs/models/receipt-item.d.ts +100 -0
  65. package/dist/cjs/models/receipt-item.js +108 -0
  66. package/dist/cjs/models/receipt-summary.d.ts +92 -0
  67. package/dist/cjs/models/receipt-summary.js +54 -0
  68. package/dist/cjs/models/receipt.d.ts +108 -0
  69. package/dist/cjs/models/receipt.js +119 -0
  70. package/dist/cjs/models/report-month.d.ts +32 -0
  71. package/dist/cjs/models/report-month.js +65 -0
  72. package/dist/cjs/models/stripe-url-session.d.ts +18 -0
  73. package/dist/cjs/models/stripe-url-session.js +20 -0
  74. package/dist/cjs/models/voucher.d.ts +41 -0
  75. package/dist/cjs/models/voucher.js +56 -0
  76. package/dist/cjs/money.d.ts +23 -0
  77. package/dist/cjs/money.js +35 -0
  78. package/dist/cjs/package.json +1 -0
  79. package/dist/cjs/payments/hobex.d.ts +87 -0
  80. package/dist/cjs/payments/hobex.js +167 -0
  81. package/dist/cjs/payments/index.d.ts +33 -0
  82. package/dist/cjs/payments/index.js +42 -0
  83. package/dist/cjs/payments/stripe.d.ts +61 -0
  84. package/dist/cjs/payments/stripe.js +157 -0
  85. package/dist/cjs/printing/escpos.d.ts +219 -0
  86. package/dist/cjs/printing/escpos.js +636 -0
  87. package/dist/cjs/printing/index.d.ts +3 -0
  88. package/dist/cjs/printing/index.js +33 -0
  89. package/dist/cjs/printing/printable.d.ts +27 -0
  90. package/dist/cjs/printing/printable.js +90 -0
  91. package/dist/cjs/printing/webusb.d.ts +89 -0
  92. package/dist/cjs/printing/webusb.js +110 -0
  93. package/dist/cjs/react/index.d.ts +46 -0
  94. package/dist/cjs/react/index.js +51 -0
  95. package/dist/cjs/receipt/discount.d.ts +12 -0
  96. package/dist/cjs/receipt/discount.js +54 -0
  97. package/dist/cjs/receipt/epos.d.ts +53 -0
  98. package/dist/cjs/receipt/epos.js +95 -0
  99. package/dist/cjs/receipt/grid.d.ts +47 -0
  100. package/dist/cjs/receipt/grid.js +122 -0
  101. package/dist/cjs/receipt/index.d.ts +4 -0
  102. package/dist/cjs/receipt/index.js +29 -0
  103. package/dist/cjs/receipt/layout-escpos.d.ts +35 -0
  104. package/dist/cjs/receipt/layout-escpos.js +67 -0
  105. package/dist/cjs/receipt/layout.d.ts +180 -0
  106. package/dist/cjs/receipt/layout.js +594 -0
  107. package/dist/cjs/register/index.d.ts +51 -0
  108. package/dist/cjs/register/index.js +61 -0
  109. package/dist/cjs/register/pairing.d.ts +248 -0
  110. package/dist/cjs/register/pairing.js +279 -0
  111. package/dist/cjs/register/session.d.ts +37 -0
  112. package/dist/cjs/register/session.js +52 -0
  113. package/dist/cjs/vienna-time.d.ts +23 -0
  114. package/dist/cjs/vienna-time.js +114 -0
  115. package/dist/esm/client/api.d.ts +75 -0
  116. package/dist/esm/client/api.js +37 -0
  117. package/dist/esm/client/auth.d.ts +52 -0
  118. package/dist/esm/client/auth.js +68 -0
  119. package/dist/esm/client/cashregisters.d.ts +21 -0
  120. package/dist/esm/client/cashregisters.js +33 -0
  121. package/dist/esm/client/errors.d.ts +159 -0
  122. package/dist/esm/client/errors.js +212 -0
  123. package/dist/esm/client/index.d.ts +8 -0
  124. package/dist/esm/client/index.js +8 -0
  125. package/dist/esm/client/receipts.d.ts +245 -0
  126. package/dist/esm/client/receipts.js +438 -0
  127. package/dist/esm/client/reports.d.ts +43 -0
  128. package/dist/esm/client/reports.js +69 -0
  129. package/dist/esm/client/status.d.ts +43 -0
  130. package/dist/esm/client/status.js +43 -0
  131. package/dist/esm/client/transport.d.ts +117 -0
  132. package/dist/esm/client/transport.js +307 -0
  133. package/dist/esm/enums/credit-card-provider.d.ts +22 -0
  134. package/dist/esm/enums/credit-card-provider.js +20 -0
  135. package/dist/esm/enums/define-enum.d.ts +15 -0
  136. package/dist/esm/enums/define-enum.js +13 -0
  137. package/dist/esm/enums/index.d.ts +7 -0
  138. package/dist/esm/enums/index.js +7 -0
  139. package/dist/esm/enums/keck-payment-method.d.ts +57 -0
  140. package/dist/esm/enums/keck-payment-method.js +20 -0
  141. package/dist/esm/enums/receipt-type.d.ts +41 -0
  142. package/dist/esm/enums/receipt-type.js +15 -0
  143. package/dist/esm/enums/stripe-link-mode.d.ts +17 -0
  144. package/dist/esm/enums/stripe-link-mode.js +15 -0
  145. package/dist/esm/enums/vat-rate.d.ts +40 -0
  146. package/dist/esm/enums/vat-rate.js +16 -0
  147. package/dist/esm/enums/voucher-action.d.ts +10 -0
  148. package/dist/esm/enums/voucher-action.js +8 -0
  149. package/dist/esm/enums/voucher-type.d.ts +9 -0
  150. package/dist/esm/enums/voucher-type.js +7 -0
  151. package/dist/esm/index.d.ts +5 -0
  152. package/dist/esm/index.js +5 -0
  153. package/dist/esm/kasse/artikel.d.ts +83 -0
  154. package/dist/esm/kasse/artikel.js +70 -0
  155. package/dist/esm/kasse/client.d.ts +10 -0
  156. package/dist/esm/kasse/client.js +33 -0
  157. package/dist/esm/kasse/drucker.d.ts +54 -0
  158. package/dist/esm/kasse/drucker.js +36 -0
  159. package/dist/esm/kasse/index.d.ts +11 -0
  160. package/dist/esm/kasse/index.js +13 -0
  161. package/dist/esm/kasse/settings.d.ts +115 -0
  162. package/dist/esm/kasse/settings.js +58 -0
  163. package/dist/esm/models/cancellation.d.ts +51 -0
  164. package/dist/esm/models/cancellation.js +40 -0
  165. package/dist/esm/models/cashregister.d.ts +77 -0
  166. package/dist/esm/models/cashregister.js +50 -0
  167. package/dist/esm/models/enum-payload.d.ts +26 -0
  168. package/dist/esm/models/enum-payload.js +44 -0
  169. package/dist/esm/models/hobex-receipt.d.ts +63 -0
  170. package/dist/esm/models/hobex-receipt.js +80 -0
  171. package/dist/esm/models/index.d.ts +10 -0
  172. package/dist/esm/models/index.js +10 -0
  173. package/dist/esm/models/receipt-company.d.ts +71 -0
  174. package/dist/esm/models/receipt-company.js +48 -0
  175. package/dist/esm/models/receipt-item.d.ts +100 -0
  176. package/dist/esm/models/receipt-item.js +101 -0
  177. package/dist/esm/models/receipt-summary.d.ts +92 -0
  178. package/dist/esm/models/receipt-summary.js +49 -0
  179. package/dist/esm/models/receipt.d.ts +108 -0
  180. package/dist/esm/models/receipt.js +113 -0
  181. package/dist/esm/models/report-month.d.ts +32 -0
  182. package/dist/esm/models/report-month.js +58 -0
  183. package/dist/esm/models/stripe-url-session.d.ts +18 -0
  184. package/dist/esm/models/stripe-url-session.js +16 -0
  185. package/dist/esm/models/voucher.d.ts +41 -0
  186. package/dist/esm/models/voucher.js +51 -0
  187. package/dist/esm/money.d.ts +23 -0
  188. package/dist/esm/money.js +31 -0
  189. package/dist/esm/payments/hobex.d.ts +87 -0
  190. package/dist/esm/payments/hobex.js +162 -0
  191. package/dist/esm/payments/index.d.ts +33 -0
  192. package/dist/esm/payments/index.js +33 -0
  193. package/dist/esm/payments/stripe.d.ts +61 -0
  194. package/dist/esm/payments/stripe.js +153 -0
  195. package/dist/esm/printing/escpos.d.ts +219 -0
  196. package/dist/esm/printing/escpos.js +616 -0
  197. package/dist/esm/printing/index.d.ts +3 -0
  198. package/dist/esm/printing/index.js +3 -0
  199. package/dist/esm/printing/printable.d.ts +27 -0
  200. package/dist/esm/printing/printable.js +87 -0
  201. package/dist/esm/printing/webusb.d.ts +89 -0
  202. package/dist/esm/printing/webusb.js +101 -0
  203. package/dist/esm/react/index.d.ts +46 -0
  204. package/dist/esm/react/index.js +47 -0
  205. package/dist/esm/receipt/discount.d.ts +12 -0
  206. package/dist/esm/receipt/discount.js +51 -0
  207. package/dist/esm/receipt/epos.d.ts +53 -0
  208. package/dist/esm/receipt/epos.js +86 -0
  209. package/dist/esm/receipt/grid.d.ts +47 -0
  210. package/dist/esm/receipt/grid.js +116 -0
  211. package/dist/esm/receipt/index.d.ts +4 -0
  212. package/dist/esm/receipt/index.js +4 -0
  213. package/dist/esm/receipt/layout-escpos.d.ts +35 -0
  214. package/dist/esm/receipt/layout-escpos.js +64 -0
  215. package/dist/esm/receipt/layout.d.ts +180 -0
  216. package/dist/esm/receipt/layout.js +583 -0
  217. package/dist/esm/register/index.d.ts +51 -0
  218. package/dist/esm/register/index.js +51 -0
  219. package/dist/esm/register/pairing.d.ts +248 -0
  220. package/dist/esm/register/pairing.js +270 -0
  221. package/dist/esm/register/session.d.ts +37 -0
  222. package/dist/esm/register/session.js +48 -0
  223. package/dist/esm/vienna-time.d.ts +23 -0
  224. package/dist/esm/vienna-time.js +110 -0
  225. package/fixtures/belege/langer-artikelname.json +43 -0
  226. package/fixtures/belege/null-ausfall.json +41 -0
  227. package/fixtures/belege/null-jahr.json +41 -0
  228. package/fixtures/belege/null-monat.json +41 -0
  229. package/fixtures/belege/null-pruef.json +41 -0
  230. package/fixtures/belege/null-schluss.json +41 -0
  231. package/fixtures/belege/null-start.json +40 -0
  232. package/fixtures/belege/rabattzeilen.json +61 -0
  233. package/fixtures/belege/signaturausfall-verkauf.json +49 -0
  234. package/fixtures/belege/storno-teil.json +48 -0
  235. package/fixtures/belege/storno-voll.json +54 -0
  236. package/fixtures/belege/testkasse-verkauf.json +50 -0
  237. package/fixtures/belege/testsignatur-verkauf.json +50 -0
  238. package/fixtures/belege/training.json +49 -0
  239. package/fixtures/belege/verkauf-bar.json +49 -0
  240. package/fixtures/belege/verkauf-karte.json +49 -0
  241. package/fixtures/belege/verkauf-kleinunternehmer.json +42 -0
  242. package/fixtures/erwartet/langer-artikelname.grid32.txt +25 -0
  243. package/fixtures/erwartet/langer-artikelname.grid48.txt +24 -0
  244. package/fixtures/erwartet/langer-artikelname.lines.json +216 -0
  245. package/fixtures/erwartet/null-ausfall.grid32.txt +28 -0
  246. package/fixtures/erwartet/null-ausfall.grid48.txt +25 -0
  247. package/fixtures/erwartet/null-ausfall.lines.json +220 -0
  248. package/fixtures/erwartet/null-jahr.grid32.txt +29 -0
  249. package/fixtures/erwartet/null-jahr.grid48.txt +25 -0
  250. package/fixtures/erwartet/null-jahr.lines.json +220 -0
  251. package/fixtures/erwartet/null-monat.grid32.txt +28 -0
  252. package/fixtures/erwartet/null-monat.grid48.txt +25 -0
  253. package/fixtures/erwartet/null-monat.lines.json +220 -0
  254. package/fixtures/erwartet/null-pruef.grid32.txt +28 -0
  255. package/fixtures/erwartet/null-pruef.grid48.txt +25 -0
  256. package/fixtures/erwartet/null-pruef.lines.json +220 -0
  257. package/fixtures/erwartet/null-schluss.grid32.txt +28 -0
  258. package/fixtures/erwartet/null-schluss.grid48.txt +25 -0
  259. package/fixtures/erwartet/null-schluss.lines.json +220 -0
  260. package/fixtures/erwartet/null-start.grid32.txt +28 -0
  261. package/fixtures/erwartet/null-start.grid48.txt +25 -0
  262. package/fixtures/erwartet/null-start.lines.json +220 -0
  263. package/fixtures/erwartet/rabattzeilen.grid32.txt +27 -0
  264. package/fixtures/erwartet/rabattzeilen.grid48.txt +26 -0
  265. package/fixtures/erwartet/rabattzeilen.lines.json +286 -0
  266. package/fixtures/erwartet/signaturausfall-verkauf.grid32.txt +28 -0
  267. package/fixtures/erwartet/signaturausfall-verkauf.grid48.txt +26 -0
  268. package/fixtures/erwartet/signaturausfall-verkauf.lines.json +266 -0
  269. package/fixtures/erwartet/storno-teil.grid32.txt +27 -0
  270. package/fixtures/erwartet/storno-teil.grid48.txt +26 -0
  271. package/fixtures/erwartet/storno-teil.lines.json +237 -0
  272. package/fixtures/erwartet/storno-voll.grid32.txt +29 -0
  273. package/fixtures/erwartet/storno-voll.grid48.txt +28 -0
  274. package/fixtures/erwartet/storno-voll.lines.json +277 -0
  275. package/fixtures/erwartet/testkasse-verkauf.grid32.txt +28 -0
  276. package/fixtures/erwartet/testkasse-verkauf.grid48.txt +27 -0
  277. package/fixtures/erwartet/testkasse-verkauf.lines.json +270 -0
  278. package/fixtures/erwartet/testsignatur-verkauf.grid32.txt +30 -0
  279. package/fixtures/erwartet/testsignatur-verkauf.grid48.txt +27 -0
  280. package/fixtures/erwartet/testsignatur-verkauf.lines.json +270 -0
  281. package/fixtures/erwartet/training.grid32.txt +33 -0
  282. package/fixtures/erwartet/training.grid48.txt +30 -0
  283. package/fixtures/erwartet/training.lines.json +277 -0
  284. package/fixtures/erwartet/verkauf-bar.grid32.txt +25 -0
  285. package/fixtures/erwartet/verkauf-bar.grid48.txt +24 -0
  286. package/fixtures/erwartet/verkauf-bar.lines.json +256 -0
  287. package/fixtures/erwartet/verkauf-karte.grid32.txt +25 -0
  288. package/fixtures/erwartet/verkauf-karte.grid48.txt +24 -0
  289. package/fixtures/erwartet/verkauf-karte.lines.json +256 -0
  290. package/fixtures/erwartet/verkauf-kleinunternehmer.grid32.txt +26 -0
  291. package/fixtures/erwartet/verkauf-kleinunternehmer.grid48.txt +25 -0
  292. package/fixtures/erwartet/verkauf-kleinunternehmer.lines.json +226 -0
  293. package/fixtures/manifest.json +107 -0
  294. package/package.json +135 -0
@@ -0,0 +1,245 @@
1
+ import { ReceiptType, type ReceiptTypeKey, KeckPaymentMethod, type KeckPaymentMethodKey, CreditCardProvider } from '../enums/index.js';
2
+ import { type Receipt, type ReceiptCompany, type ReceiptItem, type Voucher, type ReceiptSummary, type ReportMonth, type CancellationItem, type CancellationOf, type CancellationReason } from '../models/index.js';
3
+ import type { KasseneckTransport } from './transport.js';
4
+ import type { Pruefangaben, ReceiptLayout } from '../receipt/layout.js';
5
+ /**
6
+ * Beleg-Endpunkte — Zwilling der Beleg-Aufrufe in
7
+ * kasseneck_api/lib/kasseneck_api.dart.
8
+ *
9
+ * **Verkauf, freier Storno und Nullbeleg laufen ueber einen einzigen
10
+ * Backend-Endpunkt `createReceipt`.** `sellReceipt`, `createCancelReceipt` und
11
+ * `zeroReceipt` sind — wie im Flutter-Vorbild — benannte Bequemlichkeits-
12
+ * schichten ueber [createReceipt]; sie legen den Belegtyp fest und reichen den
13
+ * Rest durch. **[cancelReceipt] geht an den eigenen Endpunkt `cancelReceipt`**:
14
+ * der Server negiert die Positionen des Originals, prueft Restmengen und
15
+ * Rechte und verkettet beide Belege (Storno-API).
16
+ *
17
+ * **Kein Wiederholen fehlgeschlagener Aufrufe** (siehe transport.ts): ein
18
+ * Beleg ist nicht folgenlos wiederholbar.
19
+ *
20
+ * **Kassen-Benutzer-Weg (`registerUserAuth`, Browser-Kasse):** Von den
21
+ * Endpunkten dieser Datei setzen [listMyReceipts], [getReceipt],
22
+ * [createReceipt] und [generateFullReceiptId] ein `allowRegisterUser` — der
23
+ * Browser-Kasse steht hier also alles offen ausser [getFirstReceiptDate];
24
+ * siehe den Hinweis dort. Dieses Paket bildet das **nicht** nach — wer darf,
25
+ * entscheidet allein das Backend. Der Hinweis steht hier, damit ein Leser
26
+ * nicht raten muss.
27
+ */
28
+ /** Gemeinsame Zusatzangaben aller Belegarten (Nutzlast von `createReceipt`). */
29
+ export interface ReceiptCommonOptions {
30
+ /** Kundendaten fuer den Belegkopf; gehen als `\n`-verbundene Zeichenkette raus. */
31
+ customerDetails?: string[];
32
+ /** Rechtshinweise (z. B. Reverse Charge); gehen als `\n`-verbundene Zeichenkette raus. */
33
+ legalMessage?: string[];
34
+ /** Kartenanbieter; ohne Angabe gilt `custom`. */
35
+ creditCardProvider?: CreditCardProvider;
36
+ /** Transaktionsbezeichner der Kartenzahlung. */
37
+ cardPaymentId?: string;
38
+ /** Freier Bezeichner des Aufrufers (Projekt, Auftrag, Schicht). */
39
+ customProjectId?: string;
40
+ /** Rohdaten der Kartenzahlung (Terminal-/Anbieterantwort). */
41
+ cardPaymentData?: Record<string, unknown>;
42
+ }
43
+ /** Belegtyp und Inhalt — die vollstaendige Eingabe von [createReceipt]. */
44
+ export interface CreateReceiptOptions extends ReceiptCommonOptions {
45
+ receiptType: ReceiptType | ReceiptTypeKey;
46
+ /** Zahlungsart des Aufrufers — wird vor dem Senden geprueft. */
47
+ paymentMethod?: KeckPaymentMethod | KeckPaymentMethodKey;
48
+ /**
49
+ * Zahlungsart, die aus einer **Serverantwort** stammt (Storno eines
50
+ * gelesenen Belegs). Geht ungeprueft hinaus: der
51
+ * Server hat den Wert selbst vergeben und weist unbekannte selbst ab —
52
+ * ergaenzt er eine Zahlungsart vor dem naechsten Paket-Update, waeren sonst
53
+ * alle Belege damit unstornierbar. Nur fuer diesen einen Weg gedacht; eine
54
+ * ausdruecklich uebergebene `paymentMethod` sticht.
55
+ */
56
+ paymentMethodFromServer?: string;
57
+ items?: ReceiptItem[];
58
+ vouchers?: Voucher[];
59
+ }
60
+ export interface SellReceiptOptions extends ReceiptCommonOptions {
61
+ paymentMethod: KeckPaymentMethod | KeckPaymentMethodKey;
62
+ items?: ReceiptItem[];
63
+ vouchers?: Voucher[];
64
+ }
65
+ /**
66
+ * `customerDetails` fehlt hier absichtlich (wie im Flutter-Vorbild): die
67
+ * Kundendaten des Stornos sind die des stornierten Belegs, sonst stimmten
68
+ * Beleg und Storno nicht mehr ueberein.
69
+ */
70
+ /**
71
+ * Storno ueber den Endpunkt `cancelReceipt` (Backend: storno-endpoints.js).
72
+ * Der Server negiert die Positionen, prueft Restmengen und Rechte, verkettet
73
+ * Original und Storno-Beleg. Bezug entweder als Beleg-Objekt (`receipt`) oder
74
+ * als Kasse + Beleg-ID.
75
+ */
76
+ export type CancelReceiptOptions = {
77
+ /** Grund aus dem Katalog — Pflicht, nur der Anzeigetext landet am Bon. */
78
+ reason: CancellationReason;
79
+ /** Teilstorno: Positionen (Index im Original) und Mengen. Fehlt = Vollstorno der Restmengen. */
80
+ items?: CancellationItem[];
81
+ /** Interne Anmerkung (≤ 200 Zeichen), wird gespeichert, nie gedruckt. */
82
+ note?: string;
83
+ /** Rueckzahlweg; ohne Angabe die Zahlungsart des stornierten Belegs. */
84
+ paymentMethod?: KeckPaymentMethod | KeckPaymentMethodKey;
85
+ } & ({
86
+ receipt: Receipt;
87
+ cashregisterId?: string;
88
+ originalReceiptId?: string;
89
+ } | {
90
+ receipt?: undefined;
91
+ cashregisterId: string;
92
+ originalReceiptId: string;
93
+ });
94
+ /** Antwort von [cancelReceipt]: Storno-Beleg, Bezug, Restmengen des Originals danach. */
95
+ export interface CancelReceiptResult {
96
+ receipt: Receipt;
97
+ cancellationOf: CancellationOf;
98
+ remaining: number[];
99
+ }
100
+ export interface CreateCancelReceiptOptions extends ReceiptCommonOptions {
101
+ paymentMethod: KeckPaymentMethod | KeckPaymentMethodKey;
102
+ /** Positionen, wie sie auf dem Storno stehen sollen — **nicht** negiert. */
103
+ items: ReceiptItem[];
104
+ }
105
+ /**
106
+ * Beleg **und** die Firmen-/Druckdaten derselben Antwort — das Ergebnis der
107
+ * `…WithCompany`-Varianten. Das Backend liefert beides in einem Aufruf
108
+ * (functions/index.js); wer den Beleg drucken oder anzeigen will, braucht
109
+ * beides und soll dafuer keinen zweiten Aufruf machen muessen.
110
+ */
111
+ export interface ReceiptWithCompany {
112
+ receipt: Receipt;
113
+ /** Kopf/Fuss, wie sie fuer DIESEN Beleg gelten (eingefrorene Version des Backends). */
114
+ company: ReceiptCompany;
115
+ /** Beleg einer Testumgebung (Aufdruck TESTKASSE). */
116
+ testKasse: boolean;
117
+ /** Produktionskonto mit Test-Signatureinheit (Aufdruck TESTSIGNATUR). */
118
+ testSignatur: boolean;
119
+ /** Kennung der Kopf-Version; null bei altem Backend/Altbeleg ohne Zuordnung. */
120
+ kopfId: string | null;
121
+ /** Vom Backend gebautes Zeilenmodell (Regelwerk des Belegs); null, wenn nicht mitgeliefert. */
122
+ layout: ReceiptLayout | null;
123
+ /**
124
+ * Registrierdaten fuer den Block „Prüfangaben“ (Nullbelege, Regelwerk 2) --
125
+ * fuer Clients, die das Layout selbst bauen; null bei altem Backend.
126
+ */
127
+ pruefangaben: Pruefangaben | null;
128
+ }
129
+ /**
130
+ * Gemeinsame Umsetzung aller Belegarten (Zwilling von `_createReceipt`).
131
+ * Bewusst **nicht** Teil der Paketoberflaeche: der Belegtyp gehoert nicht in
132
+ * die Hand des Aufrufers, sondern zu einem der benannten Aufrufe darunter.
133
+ */
134
+ export declare function createReceipt(rufen: KasseneckTransport, options: CreateReceiptOptions): Promise<Receipt>;
135
+ /** Normalbeleg (Verkauf) nach RKSV. */
136
+ export declare function sellReceipt(rufen: KasseneckTransport, options: SellReceiptOptions): Promise<Receipt>;
137
+ /**
138
+ * Normalbeleg wie [sellReceipt], liefert zusaetzlich die Firmen-/Druckdaten
139
+ * aus derselben Antwort — alles, was ein Belegdruck braucht, in einem Aufruf.
140
+ */
141
+ export declare function sellReceiptWithCompany(rufen: KasseneckTransport, options: SellReceiptOptions): Promise<ReceiptWithCompany>;
142
+ /**
143
+ * Storno-Beleg zu einem bestehenden Beleg — voll oder in Teilen. Prueft die
144
+ * Eingabe, bevor etwas hinausgeht; der Server haelt die Restmengen und die
145
+ * Reichweite des Rechts (eigene/alle) und antwortet mit dem fertigen,
146
+ * signierten Storno-Beleg. Gutscheine des Originals wandern nicht mit.
147
+ */
148
+ export declare function cancelReceipt(rufen: KasseneckTransport, options: CancelReceiptOptions): Promise<CancelReceiptResult>;
149
+ /**
150
+ * Stornobeleg aus frei uebergebenen Positionen — fuer den Fall, dass der
151
+ * Originalbeleg nicht als Objekt vorliegt. Die Positionen gehen **unveraendert**
152
+ * hinaus; das Vorzeichen setzt der Aufrufer.
153
+ */
154
+ export declare function createCancelReceipt(rufen: KasseneckTransport, options: CreateCancelReceiptOptions): Promise<Receipt>;
155
+ /** Nullbeleg (RKSV-Pruefbeleg) — ohne Positionen und ohne Zahlungsart. */
156
+ export declare function zeroReceipt(rufen: KasseneckTransport): Promise<Receipt>;
157
+ /** Belegliste einer Kasse samt der Kennzahlen, die dieselbe Antwort mitliefert. */
158
+ export interface ReceiptList {
159
+ /** Letzte Belege, neueste zuerst (Backend: nach `counter` absteigend). */
160
+ receipts: ReceiptSummary[];
161
+ stats: ReceiptListStats;
162
+ }
163
+ /**
164
+ * Kennzahlen zur Kasse, die `listMyReceipts` neben der Liste liefert. Sie
165
+ * kommen aus den Tages-Aggregaten des Backends, nicht aus den gelisteten
166
+ * Belegen — die Reihe umfasst sieben Tage, die Liste nur die letzten `limit`
167
+ * Belege.
168
+ */
169
+ export interface ReceiptListStats {
170
+ /** Heutiger Umsatz in Cent und Belegzahl (Wiener Kalendertag). */
171
+ today: {
172
+ revenueCents: number;
173
+ count: number;
174
+ };
175
+ /** Veraenderung gegenueber gestern in Prozent; `null`, wenn gestern 0 war. */
176
+ trendPercent: number | null;
177
+ /** Sieben Tage, aeltester zuerst; `date` als `YYYY-MM-DD` (Wiener Kalender). */
178
+ days: Array<{
179
+ date: string;
180
+ revenueCents: number;
181
+ }>;
182
+ }
183
+ export interface ListMyReceiptsOptions {
184
+ /**
185
+ * Kasse, deren Belege gelistet werden. Geht als Parameter **`cashregisterid`**
186
+ * hinaus — klein geschrieben, anders als das `cashregisterId` der Anmeldung:
187
+ * so heisst der Pflichtparameter dieses Endpunkts im Backend, und ein
188
+ * Tippfehler faellt sonst erst im Betrieb auf.
189
+ */
190
+ cashregisterId: string;
191
+ /**
192
+ * Anzahl Belege; ohne Angabe nimmt das Backend 50. Es begrenzt den Wert
193
+ * selbst auf 1 bis 200 — ein groesserer Wunsch wird still gekappt.
194
+ */
195
+ limit?: number;
196
+ /** Zeitfenster (Wiener Wanduhr, `YYYY-MM-DD` oder voller Zeitstempel); der Server deckelt auf 90 Tage. */
197
+ from?: string;
198
+ to?: string;
199
+ }
200
+ /**
201
+ * Belege einer Kasse auflisten — die Grundlage jeder Belegliste in der
202
+ * Browser-Kasse (Nachdruck, Storno, Tagesuebersicht).
203
+ *
204
+ * Die Eintraege sind **Zusammenfassungen**, keine vollstaendigen Belege (siehe
205
+ * [ReceiptSummary]); fuer Nachdruck oder Storno gehoert der Beleg ueber
206
+ * [getReceipt] bzw. [getReceiptWithCompany] einzeln geholt.
207
+ *
208
+ * **Anmeldeweg:** Der Endpunkt laeuft im Backend unter
209
+ * `checkRequest(req, 'customer', …, {allowRegisterUser: true})`, der Bearer
210
+ * muss also ein Firebase-ID-Token sein — mit `apiKeyAuth` ist er nicht
211
+ * erreichbar. Ausserdem prueft das Backend die Kassenzuweisung hier im Rumpf
212
+ * (der Endpunkt laeuft mit `checkCashRegister: false`), ein Kassen-Benutzer
213
+ * bekommt also nur die ihm zugewiesenen Kassen.
214
+ */
215
+ export declare function listMyReceipts(rufen: KasseneckTransport, options: ListMyReceiptsOptions): Promise<ReceiptList>;
216
+ /** Einzelnen Beleg der angemeldeten Kasse holen. */
217
+ export declare function getReceipt(rufen: KasseneckTransport, receiptId: string): Promise<Receipt>;
218
+ /**
219
+ * Wie [getReceipt], liefert zusaetzlich die Firmen-/Druckdaten aus derselben
220
+ * Antwort (Firma, Anschrift, Steuernummer, UID, Fusszeilen, Logo-Adresse,
221
+ * Kleinunternehmer-Kennzeichen) — die Angaben, die ein Beleg im Kopf und Fuss
222
+ * traegt (siehe models/receipt-company.ts).
223
+ */
224
+ export declare function getReceiptWithCompany(rufen: KasseneckTransport, receiptId: string): Promise<ReceiptWithCompany>;
225
+ /**
226
+ * Verschluesselte Volltext-Belegnummer erzeugen — der Bezeichner, unter dem der
227
+ * Beleg oeffentlich abrufbar ist (Beleg-Download, Pruefportal).
228
+ */
229
+ export declare function generateFullReceiptId(rufen: KasseneckTransport, receiptId: string): Promise<string>;
230
+ /**
231
+ * Berichtsmonat des allerersten Belegs dieser Kasse — die untere Grenze aller
232
+ * Monatsberichte.
233
+ *
234
+ * **Nicht fuer den Kassen-Benutzer-Weg (`registerUserAuth`):** dieser Endpunkt
235
+ * fuehrt kein `allowRegisterUser`, das Backend weist die Browser-Kasse hier ab
236
+ * (siehe Modulkommentar oben). Mit `apiKeyAuth` ist er offen.
237
+ */
238
+ export declare function getFirstReceiptDate(rufen: KasseneckTransport): Promise<ReportMonth>;
239
+ /**
240
+ * Prueft die Gutschein-Kombination eines Belegs und liefert den ersten
241
+ * Regelverstoss als Text (oder `null`) — Zwilling von
242
+ * `checkVoucherCombinationError`. Bewusst als Rueckgabewert statt als Fehler:
243
+ * eine Kassenoberflaeche will das pruefen, **bevor** sie den Beleg abschickt.
244
+ */
245
+ export declare function checkVoucherCombinationError(vouchers: Voucher[], items: ReceiptItem[]): string | null;