///
export interface Tag {
multiline?: boolean;
open?: (state: State) => void;
readContent?: (state: State, symbolCode: number) => void;
close?: (state: State, options: ReadOptions) => void;
readToken(state: State): number;
}
export interface State {
pos: number;
statementIndex: number;
transactionIndex: number;
tag?: Tag;
tagContentStart?: number;
tagContentEnd?: number;
data: Uint8Array;
statements: Statement[];
}
export interface BalanceInfo {
isCredit: boolean;
date: string;
currency: string;
value: number;
}
export interface Transaction {
id: string;
code: string;
fundsCode: string;
isCredit: boolean;
isExpense: boolean;
currency: string;
description: string;
amount: number;
valueDate: string;
entryDate: string;
customerReference: string;
bankReference: string;
}
export interface Statement {
transactions: Transaction[];
referenceNumber?: string;
relatedReferenceNumber?: string;
accountId?: string;
number?: string;
openingBalance?: BalanceInfo;
closingBalance?: BalanceInfo;
closingAvailableBalance?: BalanceInfo;
forwardAvailableBalance?: BalanceInfo;
additionalInformation?: string;
}
export interface ReadOptions {
getTransactionId(transaction: Transaction, index: number): string;
}
export declare function read(input: ArrayBuffer | Buffer, options?: ReadOptions): Promise;