@yolk-sdk/emulators 0.1.0-canary.96

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 (333) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2135 -0
  3. package/dist/anthropic.d.mts +269 -0
  4. package/dist/anthropic.d.mts.map +1 -0
  5. package/dist/anthropic.mjs +177 -0
  6. package/dist/anthropic.mjs.map +1 -0
  7. package/dist/chat-completions.d.mts +288 -0
  8. package/dist/chat-completions.d.mts.map +1 -0
  9. package/dist/chat-completions.mjs +451 -0
  10. package/dist/chat-completions.mjs.map +1 -0
  11. package/dist/codex.d.mts +265 -0
  12. package/dist/codex.d.mts.map +1 -0
  13. package/dist/codex.mjs +199 -0
  14. package/dist/codex.mjs.map +1 -0
  15. package/dist/dropbox/api.d.mts +63 -0
  16. package/dist/dropbox/api.d.mts.map +1 -0
  17. package/dist/dropbox/api.mjs +565 -0
  18. package/dist/dropbox/api.mjs.map +1 -0
  19. package/dist/dropbox/state.d.mts +136 -0
  20. package/dist/dropbox/state.d.mts.map +1 -0
  21. package/dist/dropbox/state.mjs +209 -0
  22. package/dist/dropbox/state.mjs.map +1 -0
  23. package/dist/dropbox.d.mts +79 -0
  24. package/dist/dropbox.d.mts.map +1 -0
  25. package/dist/dropbox.mjs +124 -0
  26. package/dist/dropbox.mjs.map +1 -0
  27. package/dist/email-fixtures.d.mts +36 -0
  28. package/dist/email-fixtures.d.mts.map +1 -0
  29. package/dist/email-fixtures.mjs +1080 -0
  30. package/dist/email-fixtures.mjs.map +1 -0
  31. package/dist/email.d.mts +160 -0
  32. package/dist/email.d.mts.map +1 -0
  33. package/dist/email.mjs +608 -0
  34. package/dist/email.mjs.map +1 -0
  35. package/dist/emulator-compose.d.mts +40 -0
  36. package/dist/emulator-compose.d.mts.map +1 -0
  37. package/dist/emulator-compose.mjs +91 -0
  38. package/dist/emulator-compose.mjs.map +1 -0
  39. package/dist/emulator-http.d.mts +53 -0
  40. package/dist/emulator-http.d.mts.map +1 -0
  41. package/dist/emulator-http.mjs +117 -0
  42. package/dist/emulator-http.mjs.map +1 -0
  43. package/dist/emulator-kernel.d.mts +176 -0
  44. package/dist/emulator-kernel.d.mts.map +1 -0
  45. package/dist/emulator-kernel.mjs +413 -0
  46. package/dist/emulator-kernel.mjs.map +1 -0
  47. package/dist/fixture-route.d.mts +129 -0
  48. package/dist/fixture-route.d.mts.map +1 -0
  49. package/dist/fixture-route.mjs +257 -0
  50. package/dist/fixture-route.mjs.map +1 -0
  51. package/dist/fortnox/api.d.mts +92 -0
  52. package/dist/fortnox/api.d.mts.map +1 -0
  53. package/dist/fortnox/api.mjs +750 -0
  54. package/dist/fortnox/api.mjs.map +1 -0
  55. package/dist/fortnox/state.d.mts +533 -0
  56. package/dist/fortnox/state.d.mts.map +1 -0
  57. package/dist/fortnox/state.mjs +612 -0
  58. package/dist/fortnox/state.mjs.map +1 -0
  59. package/dist/fortnox.d.mts +128 -0
  60. package/dist/fortnox.d.mts.map +1 -0
  61. package/dist/fortnox.mjs +403 -0
  62. package/dist/fortnox.mjs.map +1 -0
  63. package/dist/gateway-evaluate-recordings.d.mts +12 -0
  64. package/dist/gateway-evaluate-recordings.d.mts.map +1 -0
  65. package/dist/gateway-evaluate-recordings.mjs +128 -0
  66. package/dist/gateway-evaluate-recordings.mjs.map +1 -0
  67. package/dist/gateway.d.mts +272 -0
  68. package/dist/gateway.d.mts.map +1 -0
  69. package/dist/gateway.mjs +400 -0
  70. package/dist/gateway.mjs.map +1 -0
  71. package/dist/github/api.d.mts +63 -0
  72. package/dist/github/api.d.mts.map +1 -0
  73. package/dist/github/api.mjs +527 -0
  74. package/dist/github/api.mjs.map +1 -0
  75. package/dist/github/state.d.mts +272 -0
  76. package/dist/github/state.d.mts.map +1 -0
  77. package/dist/github/state.mjs +303 -0
  78. package/dist/github/state.mjs.map +1 -0
  79. package/dist/github.d.mts +77 -0
  80. package/dist/github.d.mts.map +1 -0
  81. package/dist/github.mjs +180 -0
  82. package/dist/github.mjs.map +1 -0
  83. package/dist/google/calendar.d.mts +10 -0
  84. package/dist/google/calendar.d.mts.map +1 -0
  85. package/dist/google/calendar.mjs +252 -0
  86. package/dist/google/calendar.mjs.map +1 -0
  87. package/dist/google/drive.d.mts +8 -0
  88. package/dist/google/drive.d.mts.map +1 -0
  89. package/dist/google/drive.mjs +252 -0
  90. package/dist/google/drive.mjs.map +1 -0
  91. package/dist/google/gmail.d.mts +10 -0
  92. package/dist/google/gmail.d.mts.map +1 -0
  93. package/dist/google/gmail.mjs +591 -0
  94. package/dist/google/gmail.mjs.map +1 -0
  95. package/dist/google/shared.d.mts +107 -0
  96. package/dist/google/shared.d.mts.map +1 -0
  97. package/dist/google/shared.mjs +146 -0
  98. package/dist/google/shared.mjs.map +1 -0
  99. package/dist/google/state.d.mts +385 -0
  100. package/dist/google/state.d.mts.map +1 -0
  101. package/dist/google/state.mjs +496 -0
  102. package/dist/google/state.mjs.map +1 -0
  103. package/dist/google.d.mts +75 -0
  104. package/dist/google.d.mts.map +1 -0
  105. package/dist/google.mjs +210 -0
  106. package/dist/google.mjs.map +1 -0
  107. package/dist/linkedin-search/api.d.mts +45 -0
  108. package/dist/linkedin-search/api.d.mts.map +1 -0
  109. package/dist/linkedin-search/api.mjs +181 -0
  110. package/dist/linkedin-search/api.mjs.map +1 -0
  111. package/dist/linkedin-search/state.d.mts +123 -0
  112. package/dist/linkedin-search/state.d.mts.map +1 -0
  113. package/dist/linkedin-search/state.mjs +261 -0
  114. package/dist/linkedin-search/state.mjs.map +1 -0
  115. package/dist/linkedin-search.d.mts +69 -0
  116. package/dist/linkedin-search.d.mts.map +1 -0
  117. package/dist/linkedin-search.mjs +158 -0
  118. package/dist/linkedin-search.mjs.map +1 -0
  119. package/dist/mcp/api.d.mts +44 -0
  120. package/dist/mcp/api.d.mts.map +1 -0
  121. package/dist/mcp/api.mjs +557 -0
  122. package/dist/mcp/api.mjs.map +1 -0
  123. package/dist/mcp/recordings.d.mts +40 -0
  124. package/dist/mcp/recordings.d.mts.map +1 -0
  125. package/dist/mcp/recordings.mjs +2390 -0
  126. package/dist/mcp/recordings.mjs.map +1 -0
  127. package/dist/mcp/state.d.mts +71 -0
  128. package/dist/mcp/state.d.mts.map +1 -0
  129. package/dist/mcp/state.mjs +83 -0
  130. package/dist/mcp/state.mjs.map +1 -0
  131. package/dist/mcp.d.mts +84 -0
  132. package/dist/mcp.d.mts.map +1 -0
  133. package/dist/mcp.mjs +241 -0
  134. package/dist/mcp.mjs.map +1 -0
  135. package/dist/messages.d.mts +183 -0
  136. package/dist/messages.d.mts.map +1 -0
  137. package/dist/messages.mjs +532 -0
  138. package/dist/messages.mjs.map +1 -0
  139. package/dist/microsoft/api.d.mts +47 -0
  140. package/dist/microsoft/api.d.mts.map +1 -0
  141. package/dist/microsoft/api.mjs +178 -0
  142. package/dist/microsoft/api.mjs.map +1 -0
  143. package/dist/microsoft/calendar.d.mts +30 -0
  144. package/dist/microsoft/calendar.d.mts.map +1 -0
  145. package/dist/microsoft/calendar.mjs +271 -0
  146. package/dist/microsoft/calendar.mjs.map +1 -0
  147. package/dist/microsoft/drive.d.mts +36 -0
  148. package/dist/microsoft/drive.d.mts.map +1 -0
  149. package/dist/microsoft/drive.mjs +298 -0
  150. package/dist/microsoft/drive.mjs.map +1 -0
  151. package/dist/microsoft/graph.d.mts +198 -0
  152. package/dist/microsoft/graph.d.mts.map +1 -0
  153. package/dist/microsoft/graph.mjs +264 -0
  154. package/dist/microsoft/graph.mjs.map +1 -0
  155. package/dist/microsoft/mail.d.mts +48 -0
  156. package/dist/microsoft/mail.d.mts.map +1 -0
  157. package/dist/microsoft/mail.mjs +488 -0
  158. package/dist/microsoft/mail.mjs.map +1 -0
  159. package/dist/microsoft/state.d.mts +480 -0
  160. package/dist/microsoft/state.d.mts.map +1 -0
  161. package/dist/microsoft/state.mjs +625 -0
  162. package/dist/microsoft/state.mjs.map +1 -0
  163. package/dist/microsoft.d.mts +168 -0
  164. package/dist/microsoft.d.mts.map +1 -0
  165. package/dist/microsoft.mjs +483 -0
  166. package/dist/microsoft.mjs.map +1 -0
  167. package/dist/node.d.mts +47 -0
  168. package/dist/node.d.mts.map +1 -0
  169. package/dist/node.mjs +178 -0
  170. package/dist/node.mjs.map +1 -0
  171. package/dist/notion/api.d.mts +51 -0
  172. package/dist/notion/api.d.mts.map +1 -0
  173. package/dist/notion/api.mjs +507 -0
  174. package/dist/notion/api.mjs.map +1 -0
  175. package/dist/notion/state.d.mts +329 -0
  176. package/dist/notion/state.d.mts.map +1 -0
  177. package/dist/notion/state.mjs +432 -0
  178. package/dist/notion/state.mjs.map +1 -0
  179. package/dist/notion.d.mts +72 -0
  180. package/dist/notion.d.mts.map +1 -0
  181. package/dist/notion.mjs +127 -0
  182. package/dist/notion.mjs.map +1 -0
  183. package/dist/openai.d.mts +165 -0
  184. package/dist/openai.d.mts.map +1 -0
  185. package/dist/openai.mjs +141 -0
  186. package/dist/openai.mjs.map +1 -0
  187. package/dist/opencode-recordings.d.mts +7 -0
  188. package/dist/opencode-recordings.d.mts.map +1 -0
  189. package/dist/opencode-recordings.mjs +222 -0
  190. package/dist/opencode-recordings.mjs.map +1 -0
  191. package/dist/opencode.d.mts +70 -0
  192. package/dist/opencode.d.mts.map +1 -0
  193. package/dist/opencode.mjs +217 -0
  194. package/dist/opencode.mjs.map +1 -0
  195. package/dist/r2-fixtures.d.mts +36 -0
  196. package/dist/r2-fixtures.d.mts.map +1 -0
  197. package/dist/r2-fixtures.mjs +245 -0
  198. package/dist/r2-fixtures.mjs.map +1 -0
  199. package/dist/r2-guard.d.mts +43 -0
  200. package/dist/r2-guard.d.mts.map +1 -0
  201. package/dist/r2-guard.mjs +215 -0
  202. package/dist/r2-guard.mjs.map +1 -0
  203. package/dist/r2.d.mts +166 -0
  204. package/dist/r2.d.mts.map +1 -0
  205. package/dist/r2.mjs +517 -0
  206. package/dist/r2.mjs.map +1 -0
  207. package/dist/responses.d.mts +231 -0
  208. package/dist/responses.d.mts.map +1 -0
  209. package/dist/responses.mjs +556 -0
  210. package/dist/responses.mjs.map +1 -0
  211. package/dist/route-evidence.d.mts +45 -0
  212. package/dist/route-evidence.d.mts.map +1 -0
  213. package/dist/route-evidence.mjs +56 -0
  214. package/dist/route-evidence.mjs.map +1 -0
  215. package/dist/router.d.mts +93 -0
  216. package/dist/router.d.mts.map +1 -0
  217. package/dist/router.mjs +259 -0
  218. package/dist/router.mjs.map +1 -0
  219. package/dist/stateful-core.d.mts +17 -0
  220. package/dist/stateful-core.d.mts.map +1 -0
  221. package/dist/stateful-core.mjs +41 -0
  222. package/dist/stateful-core.mjs.map +1 -0
  223. package/dist/stateful-emulator.d.mts +565 -0
  224. package/dist/stateful-emulator.d.mts.map +1 -0
  225. package/dist/stateful-emulator.mjs +1228 -0
  226. package/dist/stateful-emulator.mjs.map +1 -0
  227. package/dist/stateful-secrets.d.mts +84 -0
  228. package/dist/stateful-secrets.d.mts.map +1 -0
  229. package/dist/stateful-secrets.mjs +216 -0
  230. package/dist/stateful-secrets.mjs.map +1 -0
  231. package/dist/subscription-usage-recordings.d.mts +9 -0
  232. package/dist/subscription-usage-recordings.d.mts.map +1 -0
  233. package/dist/subscription-usage-recordings.mjs +53 -0
  234. package/dist/subscription-usage-recordings.mjs.map +1 -0
  235. package/dist/subscription-usage.d.mts +53 -0
  236. package/dist/subscription-usage.d.mts.map +1 -0
  237. package/dist/subscription-usage.mjs +21 -0
  238. package/dist/subscription-usage.mjs.map +1 -0
  239. package/dist/telegram/api.d.mts +34 -0
  240. package/dist/telegram/api.d.mts.map +1 -0
  241. package/dist/telegram/api.mjs +257 -0
  242. package/dist/telegram/api.mjs.map +1 -0
  243. package/dist/telegram/state.d.mts +128 -0
  244. package/dist/telegram/state.d.mts.map +1 -0
  245. package/dist/telegram/state.mjs +154 -0
  246. package/dist/telegram/state.mjs.map +1 -0
  247. package/dist/telegram.d.mts +62 -0
  248. package/dist/telegram.d.mts.map +1 -0
  249. package/dist/telegram.mjs +127 -0
  250. package/dist/telegram.mjs.map +1 -0
  251. package/dist/todoist/api.d.mts +55 -0
  252. package/dist/todoist/api.d.mts.map +1 -0
  253. package/dist/todoist/api.mjs +415 -0
  254. package/dist/todoist/api.mjs.map +1 -0
  255. package/dist/todoist/state.d.mts +275 -0
  256. package/dist/todoist/state.d.mts.map +1 -0
  257. package/dist/todoist/state.mjs +345 -0
  258. package/dist/todoist/state.mjs.map +1 -0
  259. package/dist/todoist.d.mts +68 -0
  260. package/dist/todoist.d.mts.map +1 -0
  261. package/dist/todoist.mjs +181 -0
  262. package/dist/todoist.mjs.map +1 -0
  263. package/dist/xai.d.mts +267 -0
  264. package/dist/xai.d.mts.map +1 -0
  265. package/dist/xai.mjs +252 -0
  266. package/dist/xai.mjs.map +1 -0
  267. package/package.json +157 -0
  268. package/src/anthropic.ts +289 -0
  269. package/src/chat-completions.ts +924 -0
  270. package/src/codex.ts +296 -0
  271. package/src/dropbox/api.ts +1084 -0
  272. package/src/dropbox/state.ts +364 -0
  273. package/src/dropbox.ts +203 -0
  274. package/src/email-fixtures.ts +1297 -0
  275. package/src/email.ts +1108 -0
  276. package/src/emulator-compose.ts +147 -0
  277. package/src/emulator-http.ts +184 -0
  278. package/src/emulator-kernel.ts +844 -0
  279. package/src/fixture-route.ts +561 -0
  280. package/src/fortnox/api.ts +1352 -0
  281. package/src/fortnox/state.ts +798 -0
  282. package/src/fortnox.ts +801 -0
  283. package/src/gateway-evaluate-recordings.ts +153 -0
  284. package/src/gateway.ts +530 -0
  285. package/src/github/api.ts +986 -0
  286. package/src/github/state.ts +439 -0
  287. package/src/github.ts +271 -0
  288. package/src/google/calendar.ts +486 -0
  289. package/src/google/drive.ts +471 -0
  290. package/src/google/gmail.ts +1011 -0
  291. package/src/google/shared.ts +321 -0
  292. package/src/google/state.ts +686 -0
  293. package/src/google.ts +298 -0
  294. package/src/linkedin-search/api.ts +363 -0
  295. package/src/linkedin-search/state.ts +373 -0
  296. package/src/linkedin-search.ts +241 -0
  297. package/src/mcp/api.ts +995 -0
  298. package/src/mcp/recordings.ts +2665 -0
  299. package/src/mcp/state.ts +125 -0
  300. package/src/mcp.ts +319 -0
  301. package/src/messages.ts +844 -0
  302. package/src/microsoft/api.ts +426 -0
  303. package/src/microsoft/calendar.ts +491 -0
  304. package/src/microsoft/drive.ts +541 -0
  305. package/src/microsoft/graph.ts +550 -0
  306. package/src/microsoft/mail.ts +833 -0
  307. package/src/microsoft/state.ts +822 -0
  308. package/src/microsoft.ts +982 -0
  309. package/src/node.ts +293 -0
  310. package/src/notion/api.ts +976 -0
  311. package/src/notion/state.ts +512 -0
  312. package/src/notion.ts +210 -0
  313. package/src/openai.ts +198 -0
  314. package/src/opencode-recordings.ts +257 -0
  315. package/src/opencode.ts +271 -0
  316. package/src/r2-fixtures.ts +295 -0
  317. package/src/r2-guard.ts +323 -0
  318. package/src/r2.ts +890 -0
  319. package/src/responses.ts +901 -0
  320. package/src/route-evidence.ts +90 -0
  321. package/src/router.ts +490 -0
  322. package/src/stateful-core.ts +70 -0
  323. package/src/stateful-emulator.ts +2571 -0
  324. package/src/stateful-secrets.ts +299 -0
  325. package/src/subscription-usage-recordings.ts +77 -0
  326. package/src/subscription-usage.ts +68 -0
  327. package/src/telegram/api.ts +437 -0
  328. package/src/telegram/state.ts +229 -0
  329. package/src/telegram.ts +227 -0
  330. package/src/todoist/api.ts +736 -0
  331. package/src/todoist/state.ts +456 -0
  332. package/src/todoist.ts +316 -0
  333. package/src/xai.ts +341 -0
@@ -0,0 +1,533 @@
1
+ import * as Schema from "effect/Schema";
2
+
3
+ //#region src/fortnox/state.d.ts
4
+ /** A stored invoice row, in the single-invoice wire shape. Totals are derived. */
5
+ declare const FortnoxEmulatorInvoiceRow: Schema.Struct<{
6
+ RowId: Schema.Int;
7
+ AccountNumber: Schema.NullOr<Schema.Int>;
8
+ ArticleNumber: Schema.String;
9
+ ContributionPercent: Schema.String;
10
+ ContributionValue: Schema.String;
11
+ CostCenter: Schema.String;
12
+ DeliveredQuantity: Schema.String;
13
+ Description: Schema.String;
14
+ Discount: Schema.Finite;
15
+ DiscountType: Schema.Literals<readonly ["PERCENT", "AMOUNT"]>;
16
+ HouseWork: Schema.Boolean;
17
+ Price: Schema.Finite;
18
+ PriceExcludingVAT: Schema.Finite;
19
+ Project: Schema.String;
20
+ Total: Schema.Finite;
21
+ TotalExcludingVAT: Schema.Finite;
22
+ Unit: Schema.String;
23
+ VAT: Schema.Finite;
24
+ VATCode: Schema.String;
25
+ }>;
26
+ type FortnoxEmulatorInvoiceRow = typeof FortnoxEmulatorInvoiceRow.Type;
27
+ /** A stored customer invoice with its rows. */
28
+ declare const FortnoxEmulatorInvoice: Schema.Struct<{
29
+ DocumentNumber: Schema.String;
30
+ CustomerNumber: Schema.String;
31
+ CustomerName: Schema.String;
32
+ Balance: Schema.Finite;
33
+ Booked: Schema.Boolean;
34
+ Cancelled: Schema.Boolean;
35
+ Comments: Schema.String;
36
+ CostCenter: Schema.String;
37
+ Credit: Schema.String;
38
+ Currency: Schema.String;
39
+ CurrencyRate: Schema.Finite;
40
+ CurrencyUnit: Schema.Finite;
41
+ DueDate: Schema.NullOr<Schema.String>;
42
+ EmailInformation: Schema.Struct<{
43
+ readonly EmailAddressFrom: Schema.String;
44
+ readonly EmailAddressTo: Schema.String;
45
+ readonly EmailAddressCC: Schema.String;
46
+ readonly EmailAddressBCC: Schema.String;
47
+ readonly EmailSubject: Schema.String;
48
+ readonly EmailBody: Schema.String;
49
+ }>;
50
+ ExternalInvoiceReference1: Schema.String;
51
+ ExternalInvoiceReference2: Schema.String;
52
+ FinalPayDate: Schema.NullOr<Schema.String>;
53
+ Gross: Schema.Finite;
54
+ InvoiceDate: Schema.String;
55
+ InvoiceRows: Schema.$Array<Schema.Struct<{
56
+ RowId: Schema.Int;
57
+ AccountNumber: Schema.NullOr<Schema.Int>;
58
+ ArticleNumber: Schema.String;
59
+ ContributionPercent: Schema.String;
60
+ ContributionValue: Schema.String;
61
+ CostCenter: Schema.String;
62
+ DeliveredQuantity: Schema.String;
63
+ Description: Schema.String;
64
+ Discount: Schema.Finite;
65
+ DiscountType: Schema.Literals<readonly ["PERCENT", "AMOUNT"]>;
66
+ HouseWork: Schema.Boolean;
67
+ Price: Schema.Finite;
68
+ PriceExcludingVAT: Schema.Finite;
69
+ Project: Schema.String;
70
+ Total: Schema.Finite;
71
+ TotalExcludingVAT: Schema.Finite;
72
+ Unit: Schema.String;
73
+ VAT: Schema.Finite;
74
+ VATCode: Schema.String;
75
+ }>>;
76
+ InvoiceType: Schema.String;
77
+ Net: Schema.Finite;
78
+ NotCompleted: Schema.Boolean;
79
+ NoxFinans: Schema.Boolean;
80
+ OCR: Schema.String;
81
+ OurReference: Schema.String;
82
+ Project: Schema.String;
83
+ Sent: Schema.Boolean;
84
+ TermsOfPayment: Schema.String;
85
+ Total: Schema.Finite;
86
+ TotalToPay: Schema.Finite;
87
+ TotalVAT: Schema.Finite;
88
+ VoucherNumber: Schema.NullOr<Schema.Int>;
89
+ VoucherSeries: Schema.NullOr<Schema.String>;
90
+ VoucherYear: Schema.NullOr<Schema.Int>;
91
+ WayOfDelivery: Schema.String;
92
+ YourReference: Schema.String;
93
+ }>;
94
+ type FortnoxEmulatorInvoice = typeof FortnoxEmulatorInvoice.Type;
95
+ /** A stored customer. `Country` is read-only (derived from `CountryCode`). */
96
+ declare const FortnoxEmulatorCustomer: Schema.Struct<{
97
+ CustomerNumber: Schema.String;
98
+ Name: Schema.String;
99
+ Active: Schema.Boolean;
100
+ Address1: Schema.String;
101
+ Address2: Schema.String;
102
+ City: Schema.String;
103
+ Comments: Schema.String;
104
+ CostCenter: Schema.String;
105
+ Country: Schema.String;
106
+ CountryCode: Schema.String;
107
+ Currency: Schema.String;
108
+ Email: Schema.String;
109
+ EmailInvoice: Schema.String;
110
+ OrganisationNumber: Schema.String;
111
+ OurReference: Schema.String;
112
+ Phone1: Schema.String;
113
+ Phone2: Schema.String;
114
+ TermsOfPayment: Schema.String;
115
+ Type: Schema.String;
116
+ VATNumber: Schema.String;
117
+ VATType: Schema.String;
118
+ YourReference: Schema.String;
119
+ ZipCode: Schema.String;
120
+ }>;
121
+ type FortnoxEmulatorCustomer = typeof FortnoxEmulatorCustomer.Type;
122
+ /** The company the credential belongs to (`GET /3/companyinformation`). */
123
+ declare const FortnoxEmulatorCompany: Schema.Struct<{
124
+ CompanyName: Schema.String;
125
+ OrganizationNumber: Schema.String;
126
+ DatabaseNumber: Schema.Int;
127
+ Address: Schema.String;
128
+ City: Schema.String;
129
+ ZipCode: Schema.String;
130
+ CountryCode: Schema.String;
131
+ VisitAddress: Schema.String;
132
+ VisitCity: Schema.String;
133
+ VisitZipCode: Schema.String;
134
+ VisitCountryCode: Schema.String;
135
+ }>;
136
+ type FortnoxEmulatorCompany = typeof FortnoxEmulatorCompany.Type;
137
+ /** A recorded (never delivered) invoice email. */
138
+ declare const FortnoxEmulatorOutboxEntry: Schema.Struct<{
139
+ readonly DocumentNumber: Schema.String;
140
+ readonly EmailAddressTo: Schema.String;
141
+ readonly EmailAddressCC: Schema.String;
142
+ readonly EmailAddressBCC: Schema.String;
143
+ readonly EmailSubject: Schema.String; /** ISO timestamp from the emulator clock. */
144
+ readonly sentAt: Schema.String;
145
+ }>;
146
+ type FortnoxEmulatorOutboxEntry = typeof FortnoxEmulatorOutboxEntry.Type;
147
+ declare const Counters: Schema.Struct<{
148
+ /** Next RowId handed out; RowIds are regenerated on every row update. */readonly nextRowId: Schema.Int; /** Next DocumentNumber handed out by `POST /3/invoices`. */
149
+ readonly nextDocumentNumber: Schema.Int;
150
+ }>;
151
+ /** The whole emulator state (JSON-compatible; what `snapshot()` returns). */
152
+ declare const FortnoxEmulatorStateSchema: Schema.Struct<{
153
+ readonly company: Schema.Struct<{
154
+ CompanyName: Schema.String;
155
+ OrganizationNumber: Schema.String;
156
+ DatabaseNumber: Schema.Int;
157
+ Address: Schema.String;
158
+ City: Schema.String;
159
+ ZipCode: Schema.String;
160
+ CountryCode: Schema.String;
161
+ VisitAddress: Schema.String;
162
+ VisitCity: Schema.String;
163
+ VisitZipCode: Schema.String;
164
+ VisitCountryCode: Schema.String;
165
+ }>;
166
+ readonly customers: Schema.$Array<Schema.Struct<{
167
+ CustomerNumber: Schema.String;
168
+ Name: Schema.String;
169
+ Active: Schema.Boolean;
170
+ Address1: Schema.String;
171
+ Address2: Schema.String;
172
+ City: Schema.String;
173
+ Comments: Schema.String;
174
+ CostCenter: Schema.String;
175
+ Country: Schema.String;
176
+ CountryCode: Schema.String;
177
+ Currency: Schema.String;
178
+ Email: Schema.String;
179
+ EmailInvoice: Schema.String;
180
+ OrganisationNumber: Schema.String;
181
+ OurReference: Schema.String;
182
+ Phone1: Schema.String;
183
+ Phone2: Schema.String;
184
+ TermsOfPayment: Schema.String;
185
+ Type: Schema.String;
186
+ VATNumber: Schema.String;
187
+ VATType: Schema.String;
188
+ YourReference: Schema.String;
189
+ ZipCode: Schema.String;
190
+ }>>;
191
+ readonly invoices: Schema.$Array<Schema.Struct<{
192
+ DocumentNumber: Schema.String;
193
+ CustomerNumber: Schema.String;
194
+ CustomerName: Schema.String;
195
+ Balance: Schema.Finite;
196
+ Booked: Schema.Boolean;
197
+ Cancelled: Schema.Boolean;
198
+ Comments: Schema.String;
199
+ CostCenter: Schema.String;
200
+ Credit: Schema.String;
201
+ Currency: Schema.String;
202
+ CurrencyRate: Schema.Finite;
203
+ CurrencyUnit: Schema.Finite;
204
+ DueDate: Schema.NullOr<Schema.String>;
205
+ EmailInformation: Schema.Struct<{
206
+ readonly EmailAddressFrom: Schema.String;
207
+ readonly EmailAddressTo: Schema.String;
208
+ readonly EmailAddressCC: Schema.String;
209
+ readonly EmailAddressBCC: Schema.String;
210
+ readonly EmailSubject: Schema.String;
211
+ readonly EmailBody: Schema.String;
212
+ }>;
213
+ ExternalInvoiceReference1: Schema.String;
214
+ ExternalInvoiceReference2: Schema.String;
215
+ FinalPayDate: Schema.NullOr<Schema.String>;
216
+ Gross: Schema.Finite;
217
+ InvoiceDate: Schema.String;
218
+ InvoiceRows: Schema.$Array<Schema.Struct<{
219
+ RowId: Schema.Int;
220
+ AccountNumber: Schema.NullOr<Schema.Int>;
221
+ ArticleNumber: Schema.String;
222
+ ContributionPercent: Schema.String;
223
+ ContributionValue: Schema.String;
224
+ CostCenter: Schema.String;
225
+ DeliveredQuantity: Schema.String;
226
+ Description: Schema.String;
227
+ Discount: Schema.Finite;
228
+ DiscountType: Schema.Literals<readonly ["PERCENT", "AMOUNT"]>;
229
+ HouseWork: Schema.Boolean;
230
+ Price: Schema.Finite;
231
+ PriceExcludingVAT: Schema.Finite;
232
+ Project: Schema.String;
233
+ Total: Schema.Finite;
234
+ TotalExcludingVAT: Schema.Finite;
235
+ Unit: Schema.String;
236
+ VAT: Schema.Finite;
237
+ VATCode: Schema.String;
238
+ }>>;
239
+ InvoiceType: Schema.String;
240
+ Net: Schema.Finite;
241
+ NotCompleted: Schema.Boolean;
242
+ NoxFinans: Schema.Boolean;
243
+ OCR: Schema.String;
244
+ OurReference: Schema.String;
245
+ Project: Schema.String;
246
+ Sent: Schema.Boolean;
247
+ TermsOfPayment: Schema.String;
248
+ Total: Schema.Finite;
249
+ TotalToPay: Schema.Finite;
250
+ TotalVAT: Schema.Finite;
251
+ VoucherNumber: Schema.NullOr<Schema.Int>;
252
+ VoucherSeries: Schema.NullOr<Schema.String>;
253
+ VoucherYear: Schema.NullOr<Schema.Int>;
254
+ WayOfDelivery: Schema.String;
255
+ YourReference: Schema.String;
256
+ }>>;
257
+ readonly outbox: Schema.$Array<Schema.Struct<{
258
+ readonly DocumentNumber: Schema.String;
259
+ readonly EmailAddressTo: Schema.String;
260
+ readonly EmailAddressCC: Schema.String;
261
+ readonly EmailAddressBCC: Schema.String;
262
+ readonly EmailSubject: Schema.String; /** ISO timestamp from the emulator clock. */
263
+ readonly sentAt: Schema.String;
264
+ }>>;
265
+ readonly counters: Schema.Struct<{
266
+ /** Next RowId handed out; RowIds are regenerated on every row update. */readonly nextRowId: Schema.Int; /** Next DocumentNumber handed out by `POST /3/invoices`. */
267
+ readonly nextDocumentNumber: Schema.Int;
268
+ }>;
269
+ }>;
270
+ /**
271
+ * The emulator state. The container is mutable (route handlers replace whole entity lists);
272
+ * every entity is replaced, never edited in place.
273
+ */
274
+ type FortnoxEmulatorState = {
275
+ company: FortnoxEmulatorCompany;
276
+ customers: ReadonlyArray<FortnoxEmulatorCustomer>;
277
+ invoices: ReadonlyArray<FortnoxEmulatorInvoice>;
278
+ outbox: ReadonlyArray<FortnoxEmulatorOutboxEntry>;
279
+ counters: typeof Counters.Type;
280
+ };
281
+ /** A seeded invoice row: the writable row fields; totals and `VATCode` are derived. */
282
+ declare const FortnoxEmulatorInvoiceRowSeed: Schema.Struct<{
283
+ readonly RowId: Schema.optionalKey<Schema.Int>;
284
+ readonly AccountNumber: Schema.optionalKey<Schema.NullOr<Schema.Int>>;
285
+ readonly ArticleNumber: Schema.optionalKey<Schema.String>;
286
+ readonly CostCenter: Schema.optionalKey<Schema.String>;
287
+ readonly DeliveredQuantity: Schema.optionalKey<Schema.String>;
288
+ readonly Description: Schema.optionalKey<Schema.String>;
289
+ readonly Discount: Schema.optionalKey<Schema.Finite>;
290
+ readonly DiscountType: Schema.optionalKey<Schema.Literals<readonly ["PERCENT", "AMOUNT"]>>;
291
+ readonly Price: Schema.optionalKey<Schema.Finite>;
292
+ readonly Project: Schema.optionalKey<Schema.String>;
293
+ readonly Unit: Schema.optionalKey<Schema.String>;
294
+ readonly VAT: Schema.optionalKey<Schema.Finite>;
295
+ }>;
296
+ type FortnoxEmulatorInvoiceRowSeed = typeof FortnoxEmulatorInvoiceRowSeed.Type;
297
+ /**
298
+ * A seeded invoice: `DocumentNumber` and `CustomerNumber` are required; everything else has a
299
+ * synthetic default. Totals (`Net`, `Gross`, `TotalVAT`, `Total`, `TotalToPay`) are always
300
+ * computed from the rows; `Balance` defaults to `Total`.
301
+ */
302
+ declare const FortnoxEmulatorInvoiceSeed: Schema.Struct<{
303
+ readonly InvoiceRows: Schema.optionalKey<Schema.$Array<Schema.Struct<{
304
+ readonly RowId: Schema.optionalKey<Schema.Int>;
305
+ readonly AccountNumber: Schema.optionalKey<Schema.NullOr<Schema.Int>>;
306
+ readonly ArticleNumber: Schema.optionalKey<Schema.String>;
307
+ readonly CostCenter: Schema.optionalKey<Schema.String>;
308
+ readonly DeliveredQuantity: Schema.optionalKey<Schema.String>;
309
+ readonly Description: Schema.optionalKey<Schema.String>;
310
+ readonly Discount: Schema.optionalKey<Schema.Finite>;
311
+ readonly DiscountType: Schema.optionalKey<Schema.Literals<readonly ["PERCENT", "AMOUNT"]>>;
312
+ readonly Price: Schema.optionalKey<Schema.Finite>;
313
+ readonly Project: Schema.optionalKey<Schema.String>;
314
+ readonly Unit: Schema.optionalKey<Schema.String>;
315
+ readonly VAT: Schema.optionalKey<Schema.Finite>;
316
+ }>>>;
317
+ readonly DocumentNumber: Schema.String;
318
+ readonly CustomerNumber: Schema.String;
319
+ readonly CustomerName: Schema.optionalKey<Schema.String>;
320
+ readonly Balance: Schema.optionalKey<Schema.Finite>;
321
+ readonly Booked: Schema.optionalKey<Schema.Boolean>;
322
+ readonly Cancelled: Schema.optionalKey<Schema.Boolean>;
323
+ readonly Comments: Schema.optionalKey<Schema.String>;
324
+ readonly CostCenter: Schema.optionalKey<Schema.String>;
325
+ readonly Credit: Schema.optionalKey<Schema.String>;
326
+ readonly Currency: Schema.optionalKey<Schema.String>;
327
+ readonly CurrencyRate: Schema.optionalKey<Schema.Finite>;
328
+ readonly CurrencyUnit: Schema.optionalKey<Schema.Finite>;
329
+ readonly DueDate: Schema.optionalKey<Schema.NullOr<Schema.String>>;
330
+ readonly EmailInformation: Schema.optionalKey<Schema.Struct<{
331
+ readonly EmailAddressFrom: Schema.String;
332
+ readonly EmailAddressTo: Schema.String;
333
+ readonly EmailAddressCC: Schema.String;
334
+ readonly EmailAddressBCC: Schema.String;
335
+ readonly EmailSubject: Schema.String;
336
+ readonly EmailBody: Schema.String;
337
+ }>>;
338
+ readonly ExternalInvoiceReference1: Schema.optionalKey<Schema.String>;
339
+ readonly ExternalInvoiceReference2: Schema.optionalKey<Schema.String>;
340
+ readonly FinalPayDate: Schema.optionalKey<Schema.NullOr<Schema.String>>;
341
+ readonly Gross: Schema.optionalKey<Schema.Finite>;
342
+ readonly InvoiceDate: Schema.optionalKey<Schema.String>;
343
+ readonly InvoiceType: Schema.optionalKey<Schema.String>;
344
+ readonly Net: Schema.optionalKey<Schema.Finite>;
345
+ readonly NotCompleted: Schema.optionalKey<Schema.Boolean>;
346
+ readonly NoxFinans: Schema.optionalKey<Schema.Boolean>;
347
+ readonly OCR: Schema.optionalKey<Schema.String>;
348
+ readonly OurReference: Schema.optionalKey<Schema.String>;
349
+ readonly Project: Schema.optionalKey<Schema.String>;
350
+ readonly Sent: Schema.optionalKey<Schema.Boolean>;
351
+ readonly TermsOfPayment: Schema.optionalKey<Schema.String>;
352
+ readonly Total: Schema.optionalKey<Schema.Finite>;
353
+ readonly TotalToPay: Schema.optionalKey<Schema.Finite>;
354
+ readonly TotalVAT: Schema.optionalKey<Schema.Finite>;
355
+ readonly VoucherNumber: Schema.optionalKey<Schema.NullOr<Schema.Int>>;
356
+ readonly VoucherSeries: Schema.optionalKey<Schema.NullOr<Schema.String>>;
357
+ readonly VoucherYear: Schema.optionalKey<Schema.NullOr<Schema.Int>>;
358
+ readonly WayOfDelivery: Schema.optionalKey<Schema.String>;
359
+ readonly YourReference: Schema.optionalKey<Schema.String>;
360
+ }>;
361
+ type FortnoxEmulatorInvoiceSeed = typeof FortnoxEmulatorInvoiceSeed.Type;
362
+ /** A seeded customer: `CustomerNumber` and `Name` are required; `Country` follows `CountryCode`. */
363
+ declare const FortnoxEmulatorCustomerSeed: Schema.Struct<{
364
+ CustomerNumber: Schema.String;
365
+ Name: Schema.String;
366
+ Active: Schema.optionalKey<Schema.Boolean>;
367
+ Address1: Schema.optionalKey<Schema.String>;
368
+ Address2: Schema.optionalKey<Schema.String>;
369
+ City: Schema.optionalKey<Schema.String>;
370
+ Comments: Schema.optionalKey<Schema.String>;
371
+ CostCenter: Schema.optionalKey<Schema.String>;
372
+ Country: Schema.optionalKey<Schema.String>;
373
+ CountryCode: Schema.optionalKey<Schema.String>;
374
+ Currency: Schema.optionalKey<Schema.String>;
375
+ Email: Schema.optionalKey<Schema.String>;
376
+ EmailInvoice: Schema.optionalKey<Schema.String>;
377
+ OrganisationNumber: Schema.optionalKey<Schema.String>;
378
+ OurReference: Schema.optionalKey<Schema.String>;
379
+ Phone1: Schema.optionalKey<Schema.String>;
380
+ Phone2: Schema.optionalKey<Schema.String>;
381
+ TermsOfPayment: Schema.optionalKey<Schema.String>;
382
+ Type: Schema.optionalKey<Schema.String>;
383
+ VATNumber: Schema.optionalKey<Schema.String>;
384
+ VATType: Schema.optionalKey<Schema.String>;
385
+ YourReference: Schema.optionalKey<Schema.String>;
386
+ ZipCode: Schema.optionalKey<Schema.String>;
387
+ }>;
388
+ type FortnoxEmulatorCustomerSeed = typeof FortnoxEmulatorCustomerSeed.Type;
389
+ /** Account-variance profiles for the default seed. */
390
+ declare const FortnoxEmulatorProfile: Schema.Literals<readonly ["default", "empty-company", "no-booked-invoices"]>;
391
+ type FortnoxEmulatorProfile = typeof FortnoxEmulatorProfile.Type;
392
+ /**
393
+ * A typed seed. Start from `profile` (default `'default'`, the fixture entities); `company`,
394
+ * `customers`, and `invoices`, when given, replace that part of the profile.
395
+ */
396
+ declare const FortnoxEmulatorSeed: Schema.Struct<{
397
+ readonly profile: Schema.optionalKey<Schema.Literals<readonly ["default", "empty-company", "no-booked-invoices"]>>;
398
+ readonly company: Schema.optionalKey<Schema.Struct<{
399
+ CompanyName: Schema.String;
400
+ OrganizationNumber: Schema.String;
401
+ DatabaseNumber: Schema.Int;
402
+ Address: Schema.String;
403
+ City: Schema.String;
404
+ ZipCode: Schema.String;
405
+ CountryCode: Schema.String;
406
+ VisitAddress: Schema.String;
407
+ VisitCity: Schema.String;
408
+ VisitZipCode: Schema.String;
409
+ VisitCountryCode: Schema.String;
410
+ }>>;
411
+ readonly customers: Schema.optionalKey<Schema.$Array<Schema.Struct<{
412
+ CustomerNumber: Schema.String;
413
+ Name: Schema.String;
414
+ Active: Schema.optionalKey<Schema.Boolean>;
415
+ Address1: Schema.optionalKey<Schema.String>;
416
+ Address2: Schema.optionalKey<Schema.String>;
417
+ City: Schema.optionalKey<Schema.String>;
418
+ Comments: Schema.optionalKey<Schema.String>;
419
+ CostCenter: Schema.optionalKey<Schema.String>;
420
+ Country: Schema.optionalKey<Schema.String>;
421
+ CountryCode: Schema.optionalKey<Schema.String>;
422
+ Currency: Schema.optionalKey<Schema.String>;
423
+ Email: Schema.optionalKey<Schema.String>;
424
+ EmailInvoice: Schema.optionalKey<Schema.String>;
425
+ OrganisationNumber: Schema.optionalKey<Schema.String>;
426
+ OurReference: Schema.optionalKey<Schema.String>;
427
+ Phone1: Schema.optionalKey<Schema.String>;
428
+ Phone2: Schema.optionalKey<Schema.String>;
429
+ TermsOfPayment: Schema.optionalKey<Schema.String>;
430
+ Type: Schema.optionalKey<Schema.String>;
431
+ VATNumber: Schema.optionalKey<Schema.String>;
432
+ VATType: Schema.optionalKey<Schema.String>;
433
+ YourReference: Schema.optionalKey<Schema.String>;
434
+ ZipCode: Schema.optionalKey<Schema.String>;
435
+ }>>>;
436
+ readonly invoices: Schema.optionalKey<Schema.$Array<Schema.Struct<{
437
+ readonly InvoiceRows: Schema.optionalKey<Schema.$Array<Schema.Struct<{
438
+ readonly RowId: Schema.optionalKey<Schema.Int>;
439
+ readonly AccountNumber: Schema.optionalKey<Schema.NullOr<Schema.Int>>;
440
+ readonly ArticleNumber: Schema.optionalKey<Schema.String>;
441
+ readonly CostCenter: Schema.optionalKey<Schema.String>;
442
+ readonly DeliveredQuantity: Schema.optionalKey<Schema.String>;
443
+ readonly Description: Schema.optionalKey<Schema.String>;
444
+ readonly Discount: Schema.optionalKey<Schema.Finite>;
445
+ readonly DiscountType: Schema.optionalKey<Schema.Literals<readonly ["PERCENT", "AMOUNT"]>>;
446
+ readonly Price: Schema.optionalKey<Schema.Finite>;
447
+ readonly Project: Schema.optionalKey<Schema.String>;
448
+ readonly Unit: Schema.optionalKey<Schema.String>;
449
+ readonly VAT: Schema.optionalKey<Schema.Finite>;
450
+ }>>>;
451
+ readonly DocumentNumber: Schema.String;
452
+ readonly CustomerNumber: Schema.String;
453
+ readonly CustomerName: Schema.optionalKey<Schema.String>;
454
+ readonly Balance: Schema.optionalKey<Schema.Finite>;
455
+ readonly Booked: Schema.optionalKey<Schema.Boolean>;
456
+ readonly Cancelled: Schema.optionalKey<Schema.Boolean>;
457
+ readonly Comments: Schema.optionalKey<Schema.String>;
458
+ readonly CostCenter: Schema.optionalKey<Schema.String>;
459
+ readonly Credit: Schema.optionalKey<Schema.String>;
460
+ readonly Currency: Schema.optionalKey<Schema.String>;
461
+ readonly CurrencyRate: Schema.optionalKey<Schema.Finite>;
462
+ readonly CurrencyUnit: Schema.optionalKey<Schema.Finite>;
463
+ readonly DueDate: Schema.optionalKey<Schema.NullOr<Schema.String>>;
464
+ readonly EmailInformation: Schema.optionalKey<Schema.Struct<{
465
+ readonly EmailAddressFrom: Schema.String;
466
+ readonly EmailAddressTo: Schema.String;
467
+ readonly EmailAddressCC: Schema.String;
468
+ readonly EmailAddressBCC: Schema.String;
469
+ readonly EmailSubject: Schema.String;
470
+ readonly EmailBody: Schema.String;
471
+ }>>;
472
+ readonly ExternalInvoiceReference1: Schema.optionalKey<Schema.String>;
473
+ readonly ExternalInvoiceReference2: Schema.optionalKey<Schema.String>;
474
+ readonly FinalPayDate: Schema.optionalKey<Schema.NullOr<Schema.String>>;
475
+ readonly Gross: Schema.optionalKey<Schema.Finite>;
476
+ readonly InvoiceDate: Schema.optionalKey<Schema.String>;
477
+ readonly InvoiceType: Schema.optionalKey<Schema.String>;
478
+ readonly Net: Schema.optionalKey<Schema.Finite>;
479
+ readonly NotCompleted: Schema.optionalKey<Schema.Boolean>;
480
+ readonly NoxFinans: Schema.optionalKey<Schema.Boolean>;
481
+ readonly OCR: Schema.optionalKey<Schema.String>;
482
+ readonly OurReference: Schema.optionalKey<Schema.String>;
483
+ readonly Project: Schema.optionalKey<Schema.String>;
484
+ readonly Sent: Schema.optionalKey<Schema.Boolean>;
485
+ readonly TermsOfPayment: Schema.optionalKey<Schema.String>;
486
+ readonly Total: Schema.optionalKey<Schema.Finite>;
487
+ readonly TotalToPay: Schema.optionalKey<Schema.Finite>;
488
+ readonly TotalVAT: Schema.optionalKey<Schema.Finite>;
489
+ readonly VoucherNumber: Schema.optionalKey<Schema.NullOr<Schema.Int>>;
490
+ readonly VoucherSeries: Schema.optionalKey<Schema.NullOr<Schema.String>>;
491
+ readonly VoucherYear: Schema.optionalKey<Schema.NullOr<Schema.Int>>;
492
+ readonly WayOfDelivery: Schema.optionalKey<Schema.String>;
493
+ readonly YourReference: Schema.optionalKey<Schema.String>;
494
+ }>>>;
495
+ }>;
496
+ type FortnoxEmulatorSeed = typeof FortnoxEmulatorSeed.Type;
497
+ /** `CountryCode` to the Swedish country name Fortnox derives `Country` from (a small table). */
498
+ declare const fortnoxEmulatorCountries: Map<string, string>;
499
+ /** VAT percent to Fortnox sales VAT code. */
500
+ declare const fortnoxEmulatorVatCodes: Map<number, string>;
501
+ declare const round2: (value: number) => number;
502
+ /** Row total: `Price × DeliveredQuantity`, less a percent (or amount) discount. */
503
+ declare const rowTotal: (row: Pick<FortnoxEmulatorInvoiceRow, "Price" | "DeliveredQuantity" | "Discount" | "DiscountType">) => number;
504
+ type RowInput = Pick<FortnoxEmulatorInvoiceRow, 'RowId' | 'AccountNumber' | 'ArticleNumber' | 'CostCenter' | 'DeliveredQuantity' | 'Description' | 'Discount' | 'DiscountType' | 'Price' | 'Project' | 'Unit' | 'VAT'>;
505
+ /** A full row (fixture key order) with derived totals and VAT code. */
506
+ declare const buildRow: (input: RowInput) => FortnoxEmulatorInvoiceRow;
507
+ /** Defaults for a new row (no positional match). */
508
+ declare const newRowDefaults: Omit<RowInput, 'RowId'>;
509
+ /** Fortnox-style quantity: two decimals (`"2.00"`). */
510
+ declare const formatQuantity: (value: number) => string;
511
+ type InvoiceTotals = Pick<FortnoxEmulatorInvoice, 'Net' | 'Gross' | 'TotalVAT' | 'Total' | 'TotalToPay'>;
512
+ /**
513
+ * Invoice totals from the rows: `Net = Gross = Σ row totals`, `TotalVAT = Σ row total × VAT%`,
514
+ * and `Total = TotalToPay = Net + TotalVAT` rounded to whole kronor (half up), matching the
515
+ * synthetic row-discount fixture (1150 + 287.5 → 1438).
516
+ */
517
+ declare const invoiceTotals: (rows: ReadonlyArray<FortnoxEmulatorInvoiceRow>) => InvoiceTotals;
518
+ /** Numeric-aware order for Fortnox numbers (`"999" < "1001"`). */
519
+ declare const compareNumbers: (left: string, right: string) => number;
520
+ /** Default invoice email for a customer (the email fixture's sender, subject, and body). */
521
+ declare const defaultEmailInformation: (customer: FortnoxEmulatorCustomer | undefined, company: FortnoxEmulatorCompany) => FortnoxEmulatorInvoice["EmailInformation"];
522
+ type RowIdSource = {
523
+ next: number;
524
+ };
525
+ /** Build a stored invoice from a seed; row ids come from `ids` unless the seed names them. */
526
+ declare const invoiceFromSeed: (seed: FortnoxEmulatorInvoiceSeed, customer: FortnoxEmulatorCustomer | undefined, company: FortnoxEmulatorCompany, ids: RowIdSource) => FortnoxEmulatorInvoice;
527
+ /** Decode and build a seed; a string is the reason it is invalid. */
528
+ declare const buildSeedState: (input: unknown) => FortnoxEmulatorState | string;
529
+ /** Decode a full state (a restored snapshot); a string is the reason it is invalid. */
530
+ declare const decodeState: (input: unknown) => FortnoxEmulatorState | string;
531
+ //#endregion
532
+ export { FortnoxEmulatorCompany, FortnoxEmulatorCustomer, FortnoxEmulatorCustomerSeed, FortnoxEmulatorInvoice, FortnoxEmulatorInvoiceRow, FortnoxEmulatorInvoiceRowSeed, FortnoxEmulatorInvoiceSeed, FortnoxEmulatorOutboxEntry, FortnoxEmulatorProfile, FortnoxEmulatorSeed, FortnoxEmulatorState, FortnoxEmulatorStateSchema, InvoiceTotals, RowIdSource, buildRow, buildSeedState, compareNumbers, decodeState, defaultEmailInformation, formatQuantity, fortnoxEmulatorCountries, fortnoxEmulatorVatCodes, invoiceFromSeed, invoiceTotals, newRowDefaults, round2, rowTotal };
533
+ //# sourceMappingURL=state.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.mts","names":[],"sources":["../../src/fortnox/state.ts"],"mappings":"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"}