@novha/calc-engines 6.3.0 → 8.0.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 (278) hide show
  1. package/dist/capital-gains/brazil/BrazilCapitalGainsService.js +3 -0
  2. package/dist/capital-gains/brazil/BrazilCapitalGainsServiceImpl.js +56 -0
  3. package/dist/capital-gains/brazil/domain/types.js +3 -0
  4. package/dist/capital-gains/canada/CanadaCapitalGainsServiceImpl.js +29 -17
  5. package/dist/capital-gains/index.js +14 -2
  6. package/dist/capital-gains/india/IndiaCapitalGainsService.js +3 -0
  7. package/dist/capital-gains/india/IndiaCapitalGainsServiceImpl.js +58 -0
  8. package/dist/capital-gains/india/domain/types.js +3 -0
  9. package/dist/capital-gains/japan/JapanCapitalGainsService.js +3 -0
  10. package/dist/capital-gains/japan/JapanCapitalGainsServiceImpl.js +41 -0
  11. package/dist/capital-gains/japan/domain/types.js +3 -0
  12. package/dist/capital-gains/spain/SpainCapitalGainsService.js +3 -0
  13. package/dist/capital-gains/spain/SpainCapitalGainsServiceImpl.js +56 -0
  14. package/dist/capital-gains/spain/domain/types.js +3 -0
  15. package/dist/corporate/brazil/BrazilCorporateTaxService.js +3 -0
  16. package/dist/corporate/brazil/BrazilCorporateTaxServiceImpl.js +33 -0
  17. package/dist/corporate/brazil/domain/types.js +3 -0
  18. package/dist/corporate/index.js +10 -2
  19. package/dist/corporate/india/IndiaCorporateTaxService.js +3 -0
  20. package/dist/corporate/india/IndiaCorporateTaxServiceImpl.js +29 -0
  21. package/dist/corporate/india/domain/types.js +3 -0
  22. package/dist/corporate/japan/JapanCorporateTaxService.js +3 -0
  23. package/dist/corporate/japan/JapanCorporateTaxServiceImpl.js +29 -0
  24. package/dist/corporate/japan/domain/types.js +3 -0
  25. package/dist/corporate/spain/SpainCorporateTaxService.js +3 -0
  26. package/dist/corporate/spain/SpainCorporateTaxServiceImpl.js +29 -0
  27. package/dist/corporate/spain/domain/types.js +3 -0
  28. package/dist/income-tax/brazil/BrazilIncomeTaxService.js +3 -0
  29. package/dist/income-tax/brazil/BrazilIncomeTaxServiceImpl.js +78 -0
  30. package/dist/income-tax/brazil/domain/types.js +3 -0
  31. package/dist/income-tax/index.js +14 -2
  32. package/dist/income-tax/india/IndiaIncomeTaxService.js +3 -0
  33. package/dist/income-tax/india/IndiaIncomeTaxServiceImpl.js +75 -0
  34. package/dist/income-tax/india/domain/types.js +3 -0
  35. package/dist/income-tax/japan/JapanIncomeTaxService.js +3 -0
  36. package/dist/income-tax/japan/JapanIncomeTaxServiceImpl.js +75 -0
  37. package/dist/income-tax/japan/domain/types.js +3 -0
  38. package/dist/income-tax/spain/SpainIncomeTaxService.js +3 -0
  39. package/dist/income-tax/spain/SpainIncomeTaxServiceImpl.js +62 -0
  40. package/dist/income-tax/spain/domain/types.js +3 -0
  41. package/dist/index.js +3 -2
  42. package/dist/inheritance-tax/australia/AustraliaInheritanceTaxService.js +3 -0
  43. package/dist/inheritance-tax/australia/AustraliaInheritanceTaxServiceImpl.js +19 -0
  44. package/dist/inheritance-tax/australia/domain/types.js +3 -0
  45. package/dist/inheritance-tax/canada/CanadaInheritanceTaxService.js +3 -0
  46. package/dist/inheritance-tax/canada/CanadaInheritanceTaxServiceImpl.js +51 -0
  47. package/dist/inheritance-tax/canada/domain/types.js +3 -0
  48. package/dist/inheritance-tax/domain/types.js +3 -0
  49. package/dist/inheritance-tax/france/FranceInheritanceTaxService.js +3 -0
  50. package/dist/inheritance-tax/france/FranceInheritanceTaxServiceImpl.js +52 -0
  51. package/dist/inheritance-tax/france/domain/types.js +3 -0
  52. package/dist/inheritance-tax/germany/GermanyInheritanceTaxService.js +3 -0
  53. package/dist/inheritance-tax/germany/GermanyInheritanceTaxServiceImpl.js +52 -0
  54. package/dist/inheritance-tax/germany/domain/types.js +3 -0
  55. package/dist/inheritance-tax/index.js +31 -0
  56. package/dist/inheritance-tax/japan/JapanInheritanceTaxService.js +3 -0
  57. package/dist/inheritance-tax/japan/JapanInheritanceTaxServiceImpl.js +53 -0
  58. package/dist/inheritance-tax/japan/domain/types.js +3 -0
  59. package/dist/inheritance-tax/south-africa/SouthAfricaInheritanceTaxService.js +3 -0
  60. package/dist/inheritance-tax/south-africa/SouthAfricaInheritanceTaxServiceImpl.js +52 -0
  61. package/dist/inheritance-tax/south-africa/domain/types.js +3 -0
  62. package/dist/inheritance-tax/spain/SpainInheritanceTaxService.js +3 -0
  63. package/dist/inheritance-tax/spain/SpainInheritanceTaxServiceImpl.js +51 -0
  64. package/dist/inheritance-tax/spain/domain/types.js +3 -0
  65. package/dist/inheritance-tax/uk/UKInheritanceTaxService.js +3 -0
  66. package/dist/inheritance-tax/uk/UKInheritanceTaxServiceImpl.js +39 -0
  67. package/dist/inheritance-tax/uk/domain/types.js +3 -0
  68. package/dist/inheritance-tax/usa/USAInheritanceTaxService.js +3 -0
  69. package/dist/inheritance-tax/usa/USAInheritanceTaxServiceImpl.js +51 -0
  70. package/dist/inheritance-tax/usa/domain/types.js +3 -0
  71. package/dist/mortgage/brazil/BrazilMortgageService.js +3 -0
  72. package/dist/mortgage/brazil/BrazilMortgageServiceImpl.js +76 -0
  73. package/dist/mortgage/brazil/domain/types.js +3 -0
  74. package/dist/mortgage/index.js +14 -2
  75. package/dist/mortgage/india/IndiaMortgageService.js +3 -0
  76. package/dist/mortgage/india/IndiaMortgageServiceImpl.js +76 -0
  77. package/dist/mortgage/india/domain/types.js +3 -0
  78. package/dist/mortgage/japan/JapanMortgageService.js +3 -0
  79. package/dist/mortgage/japan/JapanMortgageServiceImpl.js +76 -0
  80. package/dist/mortgage/japan/domain/types.js +3 -0
  81. package/dist/mortgage/spain/SpainMortgageService.js +3 -0
  82. package/dist/mortgage/spain/SpainMortgageServiceImpl.js +96 -0
  83. package/dist/mortgage/spain/domain/types.js +3 -0
  84. package/dist/shared/domain/types.js +2 -1
  85. package/dist/types/capital-gains/brazil/BrazilCapitalGainsService.d.ts +4 -0
  86. package/dist/types/capital-gains/brazil/BrazilCapitalGainsServiceImpl.d.ts +10 -0
  87. package/dist/types/capital-gains/brazil/domain/types.d.ts +11 -0
  88. package/dist/types/capital-gains/canada/CanadaCapitalGainsServiceImpl.d.ts +1 -1
  89. package/dist/types/capital-gains/index.d.ts +9 -1
  90. package/dist/types/capital-gains/india/IndiaCapitalGainsService.d.ts +4 -0
  91. package/dist/types/capital-gains/india/IndiaCapitalGainsServiceImpl.d.ts +9 -0
  92. package/dist/types/capital-gains/india/domain/types.d.ts +9 -0
  93. package/dist/types/capital-gains/japan/JapanCapitalGainsService.d.ts +4 -0
  94. package/dist/types/capital-gains/japan/JapanCapitalGainsServiceImpl.d.ts +9 -0
  95. package/dist/types/capital-gains/japan/domain/types.d.ts +6 -0
  96. package/dist/types/capital-gains/spain/SpainCapitalGainsService.d.ts +4 -0
  97. package/dist/types/capital-gains/spain/SpainCapitalGainsServiceImpl.d.ts +10 -0
  98. package/dist/types/capital-gains/spain/domain/types.d.ts +11 -0
  99. package/dist/types/corporate/brazil/BrazilCorporateTaxService.d.ts +4 -0
  100. package/dist/types/corporate/brazil/BrazilCorporateTaxServiceImpl.d.ts +8 -0
  101. package/dist/types/corporate/brazil/domain/types.d.ts +19 -0
  102. package/dist/types/corporate/index.d.ts +9 -1
  103. package/dist/types/corporate/india/IndiaCorporateTaxService.d.ts +4 -0
  104. package/dist/types/corporate/india/IndiaCorporateTaxServiceImpl.d.ts +8 -0
  105. package/dist/types/corporate/india/domain/types.d.ts +15 -0
  106. package/dist/types/corporate/japan/JapanCorporateTaxService.d.ts +4 -0
  107. package/dist/types/corporate/japan/JapanCorporateTaxServiceImpl.d.ts +8 -0
  108. package/dist/types/corporate/japan/domain/types.d.ts +15 -0
  109. package/dist/types/corporate/spain/SpainCorporateTaxService.d.ts +4 -0
  110. package/dist/types/corporate/spain/SpainCorporateTaxServiceImpl.d.ts +8 -0
  111. package/dist/types/corporate/spain/domain/types.d.ts +15 -0
  112. package/dist/types/income-tax/brazil/BrazilIncomeTaxService.d.ts +4 -0
  113. package/dist/types/income-tax/brazil/BrazilIncomeTaxServiceImpl.d.ts +11 -0
  114. package/dist/types/income-tax/brazil/domain/types.d.ts +18 -0
  115. package/dist/types/income-tax/index.d.ts +9 -1
  116. package/dist/types/income-tax/india/IndiaIncomeTaxService.d.ts +4 -0
  117. package/dist/types/income-tax/india/IndiaIncomeTaxServiceImpl.d.ts +10 -0
  118. package/dist/types/income-tax/india/domain/types.d.ts +16 -0
  119. package/dist/types/income-tax/japan/JapanIncomeTaxService.d.ts +4 -0
  120. package/dist/types/income-tax/japan/JapanIncomeTaxServiceImpl.d.ts +10 -0
  121. package/dist/types/income-tax/japan/domain/types.d.ts +16 -0
  122. package/dist/types/income-tax/spain/SpainIncomeTaxService.d.ts +4 -0
  123. package/dist/types/income-tax/spain/SpainIncomeTaxServiceImpl.d.ts +10 -0
  124. package/dist/types/income-tax/spain/domain/types.d.ts +16 -0
  125. package/dist/types/index.d.ts +1 -0
  126. package/dist/types/inheritance-tax/australia/AustraliaInheritanceTaxService.d.ts +4 -0
  127. package/dist/types/inheritance-tax/australia/AustraliaInheritanceTaxServiceImpl.d.ts +8 -0
  128. package/dist/types/inheritance-tax/australia/domain/types.d.ts +13 -0
  129. package/dist/types/inheritance-tax/canada/CanadaInheritanceTaxService.d.ts +4 -0
  130. package/dist/types/inheritance-tax/canada/CanadaInheritanceTaxServiceImpl.d.ts +9 -0
  131. package/dist/types/inheritance-tax/canada/domain/types.d.ts +20 -0
  132. package/dist/types/inheritance-tax/domain/types.d.ts +17 -0
  133. package/dist/types/inheritance-tax/france/FranceInheritanceTaxService.d.ts +4 -0
  134. package/dist/types/inheritance-tax/france/FranceInheritanceTaxServiceImpl.d.ts +9 -0
  135. package/dist/types/inheritance-tax/france/domain/types.d.ts +29 -0
  136. package/dist/types/inheritance-tax/germany/GermanyInheritanceTaxService.d.ts +4 -0
  137. package/dist/types/inheritance-tax/germany/GermanyInheritanceTaxServiceImpl.d.ts +9 -0
  138. package/dist/types/inheritance-tax/germany/domain/types.d.ts +28 -0
  139. package/dist/types/inheritance-tax/index.d.ts +19 -0
  140. package/dist/types/inheritance-tax/japan/JapanInheritanceTaxService.d.ts +4 -0
  141. package/dist/types/inheritance-tax/japan/JapanInheritanceTaxServiceImpl.d.ts +9 -0
  142. package/dist/types/inheritance-tax/japan/domain/types.d.ts +21 -0
  143. package/dist/types/inheritance-tax/south-africa/SouthAfricaInheritanceTaxService.d.ts +4 -0
  144. package/dist/types/inheritance-tax/south-africa/SouthAfricaInheritanceTaxServiceImpl.d.ts +9 -0
  145. package/dist/types/inheritance-tax/south-africa/domain/types.d.ts +20 -0
  146. package/dist/types/inheritance-tax/spain/SpainInheritanceTaxService.d.ts +4 -0
  147. package/dist/types/inheritance-tax/spain/SpainInheritanceTaxServiceImpl.d.ts +9 -0
  148. package/dist/types/inheritance-tax/spain/domain/types.d.ts +19 -0
  149. package/dist/types/inheritance-tax/uk/UKInheritanceTaxService.d.ts +4 -0
  150. package/dist/types/inheritance-tax/uk/UKInheritanceTaxServiceImpl.d.ts +8 -0
  151. package/dist/types/inheritance-tax/uk/domain/types.d.ts +17 -0
  152. package/dist/types/inheritance-tax/usa/USAInheritanceTaxService.d.ts +4 -0
  153. package/dist/types/inheritance-tax/usa/USAInheritanceTaxServiceImpl.d.ts +9 -0
  154. package/dist/types/inheritance-tax/usa/domain/types.d.ts +19 -0
  155. package/dist/types/mortgage/brazil/BrazilMortgageService.d.ts +4 -0
  156. package/dist/types/mortgage/brazil/BrazilMortgageServiceImpl.d.ts +7 -0
  157. package/dist/types/mortgage/brazil/domain/types.d.ts +39 -0
  158. package/dist/types/mortgage/index.d.ts +9 -1
  159. package/dist/types/mortgage/india/IndiaMortgageService.d.ts +4 -0
  160. package/dist/types/mortgage/india/IndiaMortgageServiceImpl.d.ts +7 -0
  161. package/dist/types/mortgage/india/domain/types.d.ts +39 -0
  162. package/dist/types/mortgage/japan/JapanMortgageService.d.ts +4 -0
  163. package/dist/types/mortgage/japan/JapanMortgageServiceImpl.d.ts +7 -0
  164. package/dist/types/mortgage/japan/domain/types.d.ts +39 -0
  165. package/dist/types/mortgage/spain/SpainMortgageService.d.ts +4 -0
  166. package/dist/types/mortgage/spain/SpainMortgageServiceImpl.d.ts +8 -0
  167. package/dist/types/mortgage/spain/domain/types.d.ts +44 -0
  168. package/dist/types/shared/domain/types.d.ts +2 -1
  169. package/package.json +1 -1
  170. package/src/capital-gains/brazil/BrazilCapitalGainsService.ts +5 -0
  171. package/src/capital-gains/brazil/BrazilCapitalGainsServiceImpl.ts +69 -0
  172. package/src/capital-gains/brazil/domain/types.ts +15 -0
  173. package/src/capital-gains/canada/CanadaCapitalGainsServiceImpl.ts +34 -21
  174. package/src/capital-gains/index.ts +40 -0
  175. package/src/capital-gains/india/IndiaCapitalGainsService.ts +5 -0
  176. package/src/capital-gains/india/IndiaCapitalGainsServiceImpl.ts +64 -0
  177. package/src/capital-gains/india/domain/types.ts +12 -0
  178. package/src/capital-gains/japan/JapanCapitalGainsService.ts +5 -0
  179. package/src/capital-gains/japan/JapanCapitalGainsServiceImpl.ts +47 -0
  180. package/src/capital-gains/japan/domain/types.ts +9 -0
  181. package/src/capital-gains/spain/SpainCapitalGainsService.ts +5 -0
  182. package/src/capital-gains/spain/SpainCapitalGainsServiceImpl.ts +69 -0
  183. package/src/capital-gains/spain/domain/types.ts +15 -0
  184. package/src/corporate/brazil/BrazilCorporateTaxService.ts +5 -0
  185. package/src/corporate/brazil/BrazilCorporateTaxServiceImpl.ts +40 -0
  186. package/src/corporate/brazil/domain/types.ts +16 -0
  187. package/src/corporate/index.ts +45 -1
  188. package/src/corporate/india/IndiaCorporateTaxService.ts +5 -0
  189. package/src/corporate/india/IndiaCorporateTaxServiceImpl.ts +35 -0
  190. package/src/corporate/india/domain/types.ts +15 -0
  191. package/src/corporate/japan/JapanCorporateTaxService.ts +5 -0
  192. package/src/corporate/japan/JapanCorporateTaxServiceImpl.ts +35 -0
  193. package/src/corporate/japan/domain/types.ts +15 -0
  194. package/src/corporate/spain/SpainCorporateTaxService.ts +5 -0
  195. package/src/corporate/spain/SpainCorporateTaxServiceImpl.ts +35 -0
  196. package/src/corporate/spain/domain/types.ts +15 -0
  197. package/src/income-tax/brazil/BrazilIncomeTaxService.ts +5 -0
  198. package/src/income-tax/brazil/BrazilIncomeTaxServiceImpl.ts +91 -0
  199. package/src/income-tax/brazil/domain/types.ts +21 -0
  200. package/src/income-tax/index.ts +40 -0
  201. package/src/income-tax/india/IndiaIncomeTaxService.ts +5 -0
  202. package/src/income-tax/india/IndiaIncomeTaxServiceImpl.ts +87 -0
  203. package/src/income-tax/india/domain/types.ts +16 -0
  204. package/src/income-tax/japan/JapanIncomeTaxService.ts +5 -0
  205. package/src/income-tax/japan/JapanIncomeTaxServiceImpl.ts +87 -0
  206. package/src/income-tax/japan/domain/types.ts +16 -0
  207. package/src/income-tax/spain/SpainIncomeTaxService.ts +5 -0
  208. package/src/income-tax/spain/SpainIncomeTaxServiceImpl.ts +75 -0
  209. package/src/income-tax/spain/domain/types.ts +16 -0
  210. package/src/index.ts +1 -0
  211. package/src/inheritance-tax/australia/AustraliaInheritanceTaxService.ts +5 -0
  212. package/src/inheritance-tax/australia/AustraliaInheritanceTaxServiceImpl.ts +21 -0
  213. package/src/inheritance-tax/australia/domain/types.ts +16 -0
  214. package/src/inheritance-tax/canada/CanadaInheritanceTaxService.ts +5 -0
  215. package/src/inheritance-tax/canada/CanadaInheritanceTaxServiceImpl.ts +65 -0
  216. package/src/inheritance-tax/canada/domain/types.ts +24 -0
  217. package/src/inheritance-tax/domain/types.ts +19 -0
  218. package/src/inheritance-tax/france/FranceInheritanceTaxService.ts +5 -0
  219. package/src/inheritance-tax/france/FranceInheritanceTaxServiceImpl.ts +66 -0
  220. package/src/inheritance-tax/france/domain/types.ts +35 -0
  221. package/src/inheritance-tax/germany/GermanyInheritanceTaxService.ts +5 -0
  222. package/src/inheritance-tax/germany/GermanyInheritanceTaxServiceImpl.ts +66 -0
  223. package/src/inheritance-tax/germany/domain/types.ts +34 -0
  224. package/src/inheritance-tax/index.ts +110 -0
  225. package/src/inheritance-tax/japan/JapanInheritanceTaxService.ts +5 -0
  226. package/src/inheritance-tax/japan/JapanInheritanceTaxServiceImpl.ts +67 -0
  227. package/src/inheritance-tax/japan/domain/types.ts +25 -0
  228. package/src/inheritance-tax/south-africa/SouthAfricaInheritanceTaxService.ts +5 -0
  229. package/src/inheritance-tax/south-africa/SouthAfricaInheritanceTaxServiceImpl.ts +66 -0
  230. package/src/inheritance-tax/south-africa/domain/types.ts +24 -0
  231. package/src/inheritance-tax/spain/SpainInheritanceTaxService.ts +5 -0
  232. package/src/inheritance-tax/spain/SpainInheritanceTaxServiceImpl.ts +65 -0
  233. package/src/inheritance-tax/spain/domain/types.ts +23 -0
  234. package/src/inheritance-tax/uk/UKInheritanceTaxService.ts +5 -0
  235. package/src/inheritance-tax/uk/UKInheritanceTaxServiceImpl.ts +46 -0
  236. package/src/inheritance-tax/uk/domain/types.ts +20 -0
  237. package/src/inheritance-tax/usa/USAInheritanceTaxService.ts +5 -0
  238. package/src/inheritance-tax/usa/USAInheritanceTaxServiceImpl.ts +65 -0
  239. package/src/inheritance-tax/usa/domain/types.ts +23 -0
  240. package/src/mortgage/brazil/BrazilMortgageService.ts +5 -0
  241. package/src/mortgage/brazil/BrazilMortgageServiceImpl.ts +101 -0
  242. package/src/mortgage/brazil/domain/types.ts +46 -0
  243. package/src/mortgage/index.ts +49 -1
  244. package/src/mortgage/india/IndiaMortgageService.ts +5 -0
  245. package/src/mortgage/india/IndiaMortgageServiceImpl.ts +101 -0
  246. package/src/mortgage/india/domain/types.ts +46 -0
  247. package/src/mortgage/japan/JapanMortgageService.ts +5 -0
  248. package/src/mortgage/japan/JapanMortgageServiceImpl.ts +101 -0
  249. package/src/mortgage/japan/domain/types.ts +46 -0
  250. package/src/mortgage/spain/SpainMortgageService.ts +5 -0
  251. package/src/mortgage/spain/SpainMortgageServiceImpl.ts +130 -0
  252. package/src/mortgage/spain/domain/types.ts +52 -0
  253. package/src/shared/domain/types.ts +1 -0
  254. package/test/australia-inheritance-tax.test.ts +35 -0
  255. package/test/brazil-capital-gains.test.ts +65 -0
  256. package/test/brazil-corporate-tax.test.ts +63 -0
  257. package/test/brazil-income-tax.test.ts +85 -0
  258. package/test/brazil-mortgage.test.ts +70 -0
  259. package/test/canada-inheritance-tax.test.ts +62 -0
  260. package/test/france-inheritance-tax.test.ts +101 -0
  261. package/test/germany-inheritance-tax.test.ts +100 -0
  262. package/test/india-capital-gains.test.ts +71 -0
  263. package/test/india-corporate-tax.test.ts +54 -0
  264. package/test/india-income-tax.test.ts +78 -0
  265. package/test/india-mortgage.test.ts +70 -0
  266. package/test/japan-capital-gains.test.ts +55 -0
  267. package/test/japan-corporate-tax.test.ts +54 -0
  268. package/test/japan-income-tax.test.ts +76 -0
  269. package/test/japan-inheritance-tax.test.ts +74 -0
  270. package/test/japan-mortgage.test.ts +69 -0
  271. package/test/south-africa-inheritance-tax.test.ts +81 -0
  272. package/test/spain-capital-gains.test.ts +66 -0
  273. package/test/spain-corporate-tax.test.ts +54 -0
  274. package/test/spain-income-tax.test.ts +84 -0
  275. package/test/spain-inheritance-tax.test.ts +78 -0
  276. package/test/spain-mortgage.test.ts +70 -0
  277. package/test/uk-inheritance-tax.test.ts +72 -0
  278. package/test/usa-inheritance-tax.test.ts +90 -0
@@ -0,0 +1,6 @@
1
+ export interface Rules {
2
+ flatRate: number;
3
+ }
4
+ export interface Input {
5
+ capitalGain: number;
6
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "../domain/types";
2
+ export interface SpainCapitalGainsService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { Result } from "../domain/types";
2
+ import { SpainCapitalGainsService } from "./SpainCapitalGainsService";
3
+ import { Input, Rules } from "./domain/types";
4
+ export declare class SpainCapitalGainsServiceImpl implements SpainCapitalGainsService {
5
+ private _input;
6
+ private _rules;
7
+ constructor(input: Input, rules: Rules);
8
+ calculate(): Result;
9
+ private applyBrackets;
10
+ }
@@ -0,0 +1,11 @@
1
+ export interface CapitalGainsBracket {
2
+ from: number;
3
+ to: number | null;
4
+ rate: number;
5
+ }
6
+ export interface Rules {
7
+ brackets: CapitalGainsBracket[];
8
+ }
9
+ export interface Input {
10
+ capitalGain: number;
11
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface BrazilCorporateTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,8 @@
1
+ import { BrazilCorporateTaxService } from "./BrazilCorporateTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class BrazilCorporateTaxServiceImpl implements BrazilCorporateTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ }
@@ -0,0 +1,19 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface Rules {
3
+ irpj: {
4
+ baseRate: number;
5
+ surchargeRate: number;
6
+ surchargeThreshold: number;
7
+ };
8
+ csll: {
9
+ rate: number;
10
+ };
11
+ }
12
+ export interface Input {
13
+ taxableIncome: number;
14
+ }
15
+ export interface Result {
16
+ corporateTax: number;
17
+ effectiveTaxRate: number;
18
+ breakdowns: Breakdown[];
19
+ }
@@ -12,4 +12,12 @@ import { FranceCorporateTaxServiceImpl as FranceCorporateTaxService } from './fr
12
12
  import { Input as FranceCorporateTaxInput, Rules as FranceCorporateTaxRules, Result as FranceCorporateTaxResult } from './france/domain/types';
13
13
  import { CanadaCorporateTaxServiceImpl as CanadaCorporateTaxService } from './canada/CanadaCorporateTaxServiceImpl';
14
14
  import { Input as CanadaCorporateTaxInput, Rules as CanadaCorporateTaxRules, Result as CanadaCorporateTaxResult } from './canada/domain/types';
15
- export { USACorporateTaxService, USACorporateTaxInput, USACorporateTaxRules, USACorporateTaxResult, GermanyCorporateTaxService, GermanyCorporateTaxInput, GermanyCorporateTaxRules, GermanyCorporateTaxResult, UKCorporateTaxService, UKCorporateTaxInput, UKCorporateTaxRules, UKCorporateTaxResult, AustraliaCorporateTaxService, AustraliaCorporateTaxInput, AustraliaCorporateTaxRules, AustraliaCorporateTaxResult, SouthAfricaCorporateTaxService, SouthAfricaCorporateTaxInput, SouthAfricaCorporateTaxRules, SouthAfricaCorporateTaxResult, FranceCorporateTaxService, FranceCorporateTaxInput, FranceCorporateTaxRules, FranceCorporateTaxResult, CanadaCorporateTaxService, CanadaCorporateTaxInput, CanadaCorporateTaxRules, CanadaCorporateTaxResult };
15
+ import { BrazilCorporateTaxServiceImpl as BrazilCorporateTaxService } from './brazil/BrazilCorporateTaxServiceImpl';
16
+ import { Input as BrazilCorporateTaxInput, Rules as BrazilCorporateTaxRules, Result as BrazilCorporateTaxResult } from './brazil/domain/types';
17
+ import { SpainCorporateTaxServiceImpl as SpainCorporateTaxService } from './spain/SpainCorporateTaxServiceImpl';
18
+ import { Input as SpainCorporateTaxInput, Rules as SpainCorporateTaxRules, Result as SpainCorporateTaxResult } from './spain/domain/types';
19
+ import { IndiaCorporateTaxServiceImpl as IndiaCorporateTaxService } from './india/IndiaCorporateTaxServiceImpl';
20
+ import { Input as IndiaCorporateTaxInput, Rules as IndiaCorporateTaxRules, Result as IndiaCorporateTaxResult } from './india/domain/types';
21
+ import { JapanCorporateTaxServiceImpl as JapanCorporateTaxService } from './japan/JapanCorporateTaxServiceImpl';
22
+ import { Input as JapanCorporateTaxInput, Rules as JapanCorporateTaxRules, Result as JapanCorporateTaxResult } from './japan/domain/types';
23
+ export { USACorporateTaxService, USACorporateTaxInput, USACorporateTaxRules, USACorporateTaxResult, GermanyCorporateTaxService, GermanyCorporateTaxInput, GermanyCorporateTaxRules, GermanyCorporateTaxResult, UKCorporateTaxService, UKCorporateTaxInput, UKCorporateTaxRules, UKCorporateTaxResult, AustraliaCorporateTaxService, AustraliaCorporateTaxInput, AustraliaCorporateTaxRules, AustraliaCorporateTaxResult, SouthAfricaCorporateTaxService, SouthAfricaCorporateTaxInput, SouthAfricaCorporateTaxRules, SouthAfricaCorporateTaxResult, FranceCorporateTaxService, FranceCorporateTaxInput, FranceCorporateTaxRules, FranceCorporateTaxResult, CanadaCorporateTaxService, CanadaCorporateTaxInput, CanadaCorporateTaxRules, CanadaCorporateTaxResult, BrazilCorporateTaxService, BrazilCorporateTaxInput, BrazilCorporateTaxRules, BrazilCorporateTaxResult, SpainCorporateTaxService, SpainCorporateTaxInput, SpainCorporateTaxRules, SpainCorporateTaxResult, IndiaCorporateTaxService, IndiaCorporateTaxInput, IndiaCorporateTaxRules, IndiaCorporateTaxResult, JapanCorporateTaxService, JapanCorporateTaxInput, JapanCorporateTaxRules, JapanCorporateTaxResult };
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface IndiaCorporateTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,8 @@
1
+ import { IndiaCorporateTaxService } from "./IndiaCorporateTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class IndiaCorporateTaxServiceImpl implements IndiaCorporateTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ }
@@ -0,0 +1,15 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface Rules {
3
+ regime: {
4
+ type: 'flat';
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface Input {
9
+ taxableIncome: number;
10
+ }
11
+ export interface Result {
12
+ corporateTax: number;
13
+ effectiveTaxRate: number;
14
+ breakdowns: Breakdown[];
15
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface JapanCorporateTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,8 @@
1
+ import { JapanCorporateTaxService } from "./JapanCorporateTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class JapanCorporateTaxServiceImpl implements JapanCorporateTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ }
@@ -0,0 +1,15 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface Rules {
3
+ regime: {
4
+ type: 'flat';
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface Input {
9
+ taxableIncome: number;
10
+ }
11
+ export interface Result {
12
+ corporateTax: number;
13
+ effectiveTaxRate: number;
14
+ breakdowns: Breakdown[];
15
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface SpainCorporateTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,8 @@
1
+ import { SpainCorporateTaxService } from "./SpainCorporateTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class SpainCorporateTaxServiceImpl implements SpainCorporateTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ }
@@ -0,0 +1,15 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface Rules {
3
+ regime: {
4
+ type: 'flat';
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface Input {
9
+ taxableIncome: number;
10
+ }
11
+ export interface Result {
12
+ corporateTax: number;
13
+ effectiveTaxRate: number;
14
+ breakdowns: Breakdown[];
15
+ }
@@ -0,0 +1,4 @@
1
+ import { ComputedIncomeTaxValues } from "./domain/types";
2
+ export interface BrazilIncomeTaxService {
3
+ calculateNetIncome(): ComputedIncomeTaxValues;
4
+ }
@@ -0,0 +1,11 @@
1
+ import { BrazilIncomeTaxService } from "./BrazilIncomeTaxService";
2
+ import { ComputedIncomeTaxValues, IncomeTaxRules } from "./domain/types";
3
+ export declare class BrazilIncomeTaxServiceImpl implements BrazilIncomeTaxService {
4
+ private _income;
5
+ private _rules;
6
+ constructor(income: number, rules: IncomeTaxRules);
7
+ calculateNetIncome(): ComputedIncomeTaxValues;
8
+ private computeTaxBrackets;
9
+ private computeINSS;
10
+ private round;
11
+ }
@@ -0,0 +1,18 @@
1
+ import { BracketAllocation, TaxBracket } from "../../domain/types";
2
+ export interface IncomeTaxRules {
3
+ taxBrackets: TaxBracket[];
4
+ inss: INSSRules;
5
+ }
6
+ export interface INSSRules {
7
+ rate: number;
8
+ cap: number;
9
+ }
10
+ export interface ComputedIncomeTaxValues {
11
+ grossIncome: number;
12
+ incomeTax: number;
13
+ inss: number;
14
+ totalDeductions: number;
15
+ netIncome: number;
16
+ effectiveTaxRate: number;
17
+ taxBracketBreakdown: BracketAllocation[];
18
+ }
@@ -12,4 +12,12 @@ import { USAIncomeTaxServiceImpl as USAIncomeTaxService } from './usa/USAIncomeT
12
12
  import { ComputedIncomeTaxValues as USAComputedIncomeTaxValues, IncomeTaxRules as USAIncomeTaxRules } from './usa/domain/types';
13
13
  import { GermanyIncomeTaxServiceImpl as GermanyIncomeTaxService } from './germany/GermanyIncomeTaxServiceImpl';
14
14
  import { ComputedIncomeTaxValues as GermanyComputedIncomeTaxValues, IncomeTaxRules as GermanyIncomeTaxRules } from './germany/domain/types';
15
- export { CanadaIncomeTaxService, CanadaComputedIncomeTaxValues, CanadaIncomeTaxRules, FranceIncomeTaxService, FranceComputedIncomeTaxValues, FranceIncomeTaxRules, SouthAfricaIncomeTaxService, SouthAfricaComputedIncomeTaxValues, SouthAfricaIncomeTaxRules, AustraliaIncomeTaxService, AustraliaComputedIncomeTaxValues, AustraliaIncomeTaxRules, UKIncomeTaxService, UKComputedIncomeTaxValues, UKIncomeTaxRules, USAIncomeTaxService, USAComputedIncomeTaxValues, USAIncomeTaxRules, GermanyIncomeTaxService, GermanyComputedIncomeTaxValues, GermanyIncomeTaxRules, };
15
+ import { BrazilIncomeTaxServiceImpl as BrazilIncomeTaxService } from './brazil/BrazilIncomeTaxServiceImpl';
16
+ import { ComputedIncomeTaxValues as BrazilComputedIncomeTaxValues, IncomeTaxRules as BrazilIncomeTaxRules } from './brazil/domain/types';
17
+ import { SpainIncomeTaxServiceImpl as SpainIncomeTaxService } from './spain/SpainIncomeTaxServiceImpl';
18
+ import { ComputedIncomeTaxValues as SpainComputedIncomeTaxValues, IncomeTaxRules as SpainIncomeTaxRules } from './spain/domain/types';
19
+ import { IndiaIncomeTaxServiceImpl as IndiaIncomeTaxService } from './india/IndiaIncomeTaxServiceImpl';
20
+ import { ComputedIncomeTaxValues as IndiaComputedIncomeTaxValues, IncomeTaxRules as IndiaIncomeTaxRules } from './india/domain/types';
21
+ import { JapanIncomeTaxServiceImpl as JapanIncomeTaxService } from './japan/JapanIncomeTaxServiceImpl';
22
+ import { ComputedIncomeTaxValues as JapanComputedIncomeTaxValues, IncomeTaxRules as JapanIncomeTaxRules } from './japan/domain/types';
23
+ export { CanadaIncomeTaxService, CanadaComputedIncomeTaxValues, CanadaIncomeTaxRules, FranceIncomeTaxService, FranceComputedIncomeTaxValues, FranceIncomeTaxRules, SouthAfricaIncomeTaxService, SouthAfricaComputedIncomeTaxValues, SouthAfricaIncomeTaxRules, AustraliaIncomeTaxService, AustraliaComputedIncomeTaxValues, AustraliaIncomeTaxRules, UKIncomeTaxService, UKComputedIncomeTaxValues, UKIncomeTaxRules, USAIncomeTaxService, USAComputedIncomeTaxValues, USAIncomeTaxRules, GermanyIncomeTaxService, GermanyComputedIncomeTaxValues, GermanyIncomeTaxRules, BrazilIncomeTaxService, BrazilComputedIncomeTaxValues, BrazilIncomeTaxRules, SpainIncomeTaxService, SpainComputedIncomeTaxValues, SpainIncomeTaxRules, IndiaIncomeTaxService, IndiaComputedIncomeTaxValues, IndiaIncomeTaxRules, JapanIncomeTaxService, JapanComputedIncomeTaxValues, JapanIncomeTaxRules, };
@@ -0,0 +1,4 @@
1
+ import { ComputedIncomeTaxValues } from "./domain/types";
2
+ export interface IndiaIncomeTaxService {
3
+ calculateNetIncome(): ComputedIncomeTaxValues;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { IndiaIncomeTaxService } from "./IndiaIncomeTaxService";
2
+ import { ComputedIncomeTaxValues, IncomeTaxRules } from "./domain/types";
3
+ export declare class IndiaIncomeTaxServiceImpl implements IndiaIncomeTaxService {
4
+ private _income;
5
+ private _rules;
6
+ constructor(income: number, rules: IncomeTaxRules);
7
+ calculateNetIncome(): ComputedIncomeTaxValues;
8
+ private computeTaxBrackets;
9
+ private round;
10
+ }
@@ -0,0 +1,16 @@
1
+ import { BracketAllocation, TaxBracket } from "../../domain/types";
2
+ export interface IncomeTaxRules {
3
+ taxBrackets: TaxBracket[];
4
+ cess: {
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface ComputedIncomeTaxValues {
9
+ grossIncome: number;
10
+ incomeTax: number;
11
+ cess: number;
12
+ totalDeductions: number;
13
+ netIncome: number;
14
+ effectiveTaxRate: number;
15
+ taxBracketBreakdown: BracketAllocation[];
16
+ }
@@ -0,0 +1,4 @@
1
+ import { ComputedIncomeTaxValues } from "./domain/types";
2
+ export interface JapanIncomeTaxService {
3
+ calculateNetIncome(): ComputedIncomeTaxValues;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { JapanIncomeTaxService } from "./JapanIncomeTaxService";
2
+ import { ComputedIncomeTaxValues, IncomeTaxRules } from "./domain/types";
3
+ export declare class JapanIncomeTaxServiceImpl implements JapanIncomeTaxService {
4
+ private _income;
5
+ private _rules;
6
+ constructor(income: number, rules: IncomeTaxRules);
7
+ calculateNetIncome(): ComputedIncomeTaxValues;
8
+ private computeTaxBrackets;
9
+ private round;
10
+ }
@@ -0,0 +1,16 @@
1
+ import { BracketAllocation, TaxBracket } from "../../domain/types";
2
+ export interface IncomeTaxRules {
3
+ taxBrackets: TaxBracket[];
4
+ inhabitantTax: {
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface ComputedIncomeTaxValues {
9
+ grossIncome: number;
10
+ nationalIncomeTax: number;
11
+ inhabitantTax: number;
12
+ totalDeductions: number;
13
+ netIncome: number;
14
+ effectiveTaxRate: number;
15
+ taxBracketBreakdown: BracketAllocation[];
16
+ }
@@ -0,0 +1,4 @@
1
+ import { ComputedIncomeTaxValues } from "./domain/types";
2
+ export interface SpainIncomeTaxService {
3
+ calculateNetIncome(): ComputedIncomeTaxValues;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { SpainIncomeTaxService } from "./SpainIncomeTaxService";
2
+ import { ComputedIncomeTaxValues, IncomeTaxRules } from "./domain/types";
3
+ export declare class SpainIncomeTaxServiceImpl implements SpainIncomeTaxService {
4
+ private _income;
5
+ private _rules;
6
+ constructor(income: number, rules: IncomeTaxRules);
7
+ calculateNetIncome(): ComputedIncomeTaxValues;
8
+ private computeTaxBrackets;
9
+ private round;
10
+ }
@@ -0,0 +1,16 @@
1
+ import { BracketAllocation, TaxBracket } from "../../domain/types";
2
+ export interface IncomeTaxRules {
3
+ taxBrackets: TaxBracket[];
4
+ socialContributions: {
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface ComputedIncomeTaxValues {
9
+ grossIncome: number;
10
+ incomeTax: number;
11
+ socialContributions: number;
12
+ totalDeductions: number;
13
+ netIncome: number;
14
+ effectiveTaxRate: number;
15
+ taxBracketBreakdown: BracketAllocation[];
16
+ }
@@ -5,3 +5,4 @@ export * as IncomeTax from './income-tax';
5
5
  export * as CorporateTax from './corporate';
6
6
  export * as CapitalGain from './capital-gains';
7
7
  export * as Mortgage from './mortgage';
8
+ export * as InheritanceTax from './inheritance-tax';
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface AustraliaInheritanceTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,8 @@
1
+ import { AustraliaInheritanceTaxService } from "./AustraliaInheritanceTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class AustraliaInheritanceTaxServiceImpl implements AustraliaInheritanceTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ }
@@ -0,0 +1,13 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface Rules {
3
+ applicable: false;
4
+ }
5
+ export interface Input {
6
+ estateValue: number;
7
+ }
8
+ export interface Result {
9
+ taxableEstate: number;
10
+ inheritanceTax: number;
11
+ effectiveRate: number;
12
+ breakdowns: Breakdown[];
13
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface CanadaInheritanceTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { CanadaInheritanceTaxService } from "./CanadaInheritanceTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class CanadaInheritanceTaxServiceImpl implements CanadaInheritanceTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ private applyBrackets;
9
+ }
@@ -0,0 +1,20 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface TaxBracket {
3
+ from: number;
4
+ to: number | null;
5
+ rate: number;
6
+ }
7
+ export interface Rules {
8
+ inclusionRate: number;
9
+ taxBrackets: TaxBracket[];
10
+ }
11
+ export interface Input {
12
+ estateValue: number;
13
+ adjustedCostBase: number;
14
+ }
15
+ export interface Result {
16
+ taxableEstate: number;
17
+ inheritanceTax: number;
18
+ effectiveRate: number;
19
+ breakdowns: Breakdown[];
20
+ }
@@ -0,0 +1,17 @@
1
+ export interface TaxBracket {
2
+ from: number;
3
+ to: number | null;
4
+ rate: number;
5
+ }
6
+ export interface Breakdown {
7
+ from: string;
8
+ to: string;
9
+ rate: number;
10
+ amount: number;
11
+ }
12
+ export interface Result {
13
+ taxableEstate: number;
14
+ inheritanceTax: number;
15
+ effectiveRate: number;
16
+ breakdowns: Breakdown[];
17
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface FranceInheritanceTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { FranceInheritanceTaxService } from "./FranceInheritanceTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class FranceInheritanceTaxServiceImpl implements FranceInheritanceTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ private applyBrackets;
9
+ }
@@ -0,0 +1,29 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface TaxBracket {
3
+ from: number;
4
+ to: number | null;
5
+ rate: number;
6
+ }
7
+ export interface RelationshipClass {
8
+ exemption: number;
9
+ brackets: TaxBracket[];
10
+ }
11
+ export interface Rules {
12
+ relationships: {
13
+ spouse: RelationshipClass;
14
+ child: RelationshipClass;
15
+ sibling: RelationshipClass;
16
+ other: RelationshipClass;
17
+ };
18
+ }
19
+ export type RelationshipType = 'spouse' | 'child' | 'sibling' | 'other';
20
+ export interface Input {
21
+ estateValue: number;
22
+ relationship: RelationshipType;
23
+ }
24
+ export interface Result {
25
+ taxableEstate: number;
26
+ inheritanceTax: number;
27
+ effectiveRate: number;
28
+ breakdowns: Breakdown[];
29
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface GermanyInheritanceTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { GermanyInheritanceTaxService } from "./GermanyInheritanceTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class GermanyInheritanceTaxServiceImpl implements GermanyInheritanceTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ private applyBrackets;
9
+ }
@@ -0,0 +1,28 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface TaxBracket {
3
+ from: number;
4
+ to: number | null;
5
+ rate: number;
6
+ }
7
+ export interface TaxClass {
8
+ exemption: number;
9
+ brackets: TaxBracket[];
10
+ }
11
+ export interface Rules {
12
+ taxClasses: {
13
+ I: TaxClass;
14
+ II: TaxClass;
15
+ III: TaxClass;
16
+ };
17
+ }
18
+ export type TaxClassName = 'I' | 'II' | 'III';
19
+ export interface Input {
20
+ estateValue: number;
21
+ taxClass: TaxClassName;
22
+ }
23
+ export interface Result {
24
+ taxableEstate: number;
25
+ inheritanceTax: number;
26
+ effectiveRate: number;
27
+ breakdowns: Breakdown[];
28
+ }
@@ -0,0 +1,19 @@
1
+ import { CanadaInheritanceTaxServiceImpl as CanadaInheritanceTaxService } from './canada/CanadaInheritanceTaxServiceImpl';
2
+ import { Input as CanadaInheritanceTaxInput, Rules as CanadaInheritanceTaxRules, Result as CanadaInheritanceTaxResult } from './canada/domain/types';
3
+ import { FranceInheritanceTaxServiceImpl as FranceInheritanceTaxService } from './france/FranceInheritanceTaxServiceImpl';
4
+ import { Input as FranceInheritanceTaxInput, Rules as FranceInheritanceTaxRules, Result as FranceInheritanceTaxResult } from './france/domain/types';
5
+ import { SouthAfricaInheritanceTaxServiceImpl as SouthAfricaInheritanceTaxService } from './south-africa/SouthAfricaInheritanceTaxServiceImpl';
6
+ import { Input as SouthAfricaInheritanceTaxInput, Rules as SouthAfricaInheritanceTaxRules, Result as SouthAfricaInheritanceTaxResult } from './south-africa/domain/types';
7
+ import { AustraliaInheritanceTaxServiceImpl as AustraliaInheritanceTaxService } from './australia/AustraliaInheritanceTaxServiceImpl';
8
+ import { Input as AustraliaInheritanceTaxInput, Rules as AustraliaInheritanceTaxRules, Result as AustraliaInheritanceTaxResult } from './australia/domain/types';
9
+ import { UKInheritanceTaxServiceImpl as UKInheritanceTaxService } from './uk/UKInheritanceTaxServiceImpl';
10
+ import { Input as UKInheritanceTaxInput, Rules as UKInheritanceTaxRules, Result as UKInheritanceTaxResult } from './uk/domain/types';
11
+ import { USAInheritanceTaxServiceImpl as USAInheritanceTaxService } from './usa/USAInheritanceTaxServiceImpl';
12
+ import { Input as USAInheritanceTaxInput, Rules as USAInheritanceTaxRules, Result as USAInheritanceTaxResult } from './usa/domain/types';
13
+ import { GermanyInheritanceTaxServiceImpl as GermanyInheritanceTaxService } from './germany/GermanyInheritanceTaxServiceImpl';
14
+ import { Input as GermanyInheritanceTaxInput, Rules as GermanyInheritanceTaxRules, Result as GermanyInheritanceTaxResult } from './germany/domain/types';
15
+ import { SpainInheritanceTaxServiceImpl as SpainInheritanceTaxService } from './spain/SpainInheritanceTaxServiceImpl';
16
+ import { Input as SpainInheritanceTaxInput, Rules as SpainInheritanceTaxRules, Result as SpainInheritanceTaxResult } from './spain/domain/types';
17
+ import { JapanInheritanceTaxServiceImpl as JapanInheritanceTaxService } from './japan/JapanInheritanceTaxServiceImpl';
18
+ import { Input as JapanInheritanceTaxInput, Rules as JapanInheritanceTaxRules, Result as JapanInheritanceTaxResult } from './japan/domain/types';
19
+ export { CanadaInheritanceTaxService, CanadaInheritanceTaxInput, CanadaInheritanceTaxRules, CanadaInheritanceTaxResult, FranceInheritanceTaxService, FranceInheritanceTaxInput, FranceInheritanceTaxRules, FranceInheritanceTaxResult, SouthAfricaInheritanceTaxService, SouthAfricaInheritanceTaxInput, SouthAfricaInheritanceTaxRules, SouthAfricaInheritanceTaxResult, AustraliaInheritanceTaxService, AustraliaInheritanceTaxInput, AustraliaInheritanceTaxRules, AustraliaInheritanceTaxResult, UKInheritanceTaxService, UKInheritanceTaxInput, UKInheritanceTaxRules, UKInheritanceTaxResult, USAInheritanceTaxService, USAInheritanceTaxInput, USAInheritanceTaxRules, USAInheritanceTaxResult, GermanyInheritanceTaxService, GermanyInheritanceTaxInput, GermanyInheritanceTaxRules, GermanyInheritanceTaxResult, SpainInheritanceTaxService, SpainInheritanceTaxInput, SpainInheritanceTaxRules, SpainInheritanceTaxResult, JapanInheritanceTaxService, JapanInheritanceTaxInput, JapanInheritanceTaxRules, JapanInheritanceTaxResult, };
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface JapanInheritanceTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { JapanInheritanceTaxService } from "./JapanInheritanceTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class JapanInheritanceTaxServiceImpl implements JapanInheritanceTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ private applyBrackets;
9
+ }
@@ -0,0 +1,21 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface TaxBracket {
3
+ from: number;
4
+ to: number | null;
5
+ rate: number;
6
+ }
7
+ export interface Rules {
8
+ baseExemption: number;
9
+ perHeirExemption: number;
10
+ taxBrackets: TaxBracket[];
11
+ }
12
+ export interface Input {
13
+ estateValue: number;
14
+ numberOfStatutoryHeirs: number;
15
+ }
16
+ export interface Result {
17
+ taxableEstate: number;
18
+ inheritanceTax: number;
19
+ effectiveRate: number;
20
+ breakdowns: Breakdown[];
21
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface SouthAfricaInheritanceTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { SouthAfricaInheritanceTaxService } from "./SouthAfricaInheritanceTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class SouthAfricaInheritanceTaxServiceImpl implements SouthAfricaInheritanceTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ private applyBrackets;
9
+ }