diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..3649a88 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,52 @@ +import BigNumber from "bignumber.js"; + +export interface Transaction { + date: Date; + amount: BigNumber; + isReversal: boolean; + currency: string; + detailSegments: string[]; + details: string; + structuredDetails: Record; + transactionType: string; + reference: string; + entryDate: Date; + fundsCode: string; + bankReference: string; + extraDetails: string; + nonSwift: string; +} + +export interface StatementNumber { + statement: string; + sequence: string; + section: string; +} + +export interface Statement { + transactionReference: string; + relatedReference: string; + accountIdentification: string; + number: StatementNumber; + statementDate: Date; + openingBalanceDate: Date; + closingBalanceDate: Date; + closingAvailableBalanceDate: Date; + forwardAvailableBalanceDate: Date; + currency: string; + openingBalance: BigNumber; + closingBalance: BigNumber; + closingAvailableBalance: BigNumber; + forwardAvailableBalance: BigNumber; + informationToAccountOwner: string; + messageBlocks: Record; + transactions: Transaction[]; +} + +export interface ParseOptions { + data: string; + type: "mt940" | "mt942"; + validate?: boolean; +} + +export function parse(opts: ParseOptions): Statement[]; diff --git a/package.json b/package.json index ac272db..6c3dada 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "1.0.1", "description": "Swift financial message parser (MT940, MT942)", "main": "index.js", + "types": "index.d.ts", "bin": { "swift-parse": "scripts/cli.js" },