export type MetaData = { OFXHEADER: string; DATA: string; VERSION: string; SECURITY: string; ENCODING: string; CHARSET: string; COMPRESSION: string; OLDFILEUID: string; NEWFILEUID: string; [key: string]: any; }; export type DateResponse = { datetime: string | null; date: string | null; time: string | null; offset: string | null; timezone: string | null; }; export type ConfigDate = { /** * @description supported keys: * yy => year -> 2 digits, * yyyy or y => year, * MM or M => month, * dd or d => day, * hh or h => hour, * mm or m => minute, * ss or s => second, * O => offset, * TZ => timezone * @example format: 'y-M-d h:m:s' * @returns '2022-02-21 09:00:00' */ formatDate?: string; }; export type ConfigFitId = 'normal' | 'separated'; export type ParserMode = 'strict' | 'lenient'; export type AmountMode = 'string' | 'number' | 'cents'; export type DateMode = 'raw' | 'formatted' | 'iso' | 'date' | 'timestamp'; export type ExtractorConfig = ConfigDate & { fitId?: ConfigFitId; nativeTypes?: boolean; parserMode?: ParserMode; }; export type TransactionsSummary = { credit: number; debit: number; amountOfCredits: number; amountOfDebits: number; dateStart: string; dateEnd: string; }; export declare enum Types { 'BANK' = "BANK", 'CREDIT_CARD' = "CREDIT_CARD" } export type OfxSeverity = 'warning' | 'error'; export type OfxDiagnostic = { code: string; message: string; severity: OfxSeverity; path?: string; context?: string; }; export type ValidationStats = { totalTransactions: number; bankTransactions: number; creditCardTransactions: number; duplicatedFitIds: number; }; export type ValidationReport = { isValid: boolean; warnings: OfxDiagnostic[]; errors: OfxDiagnostic[]; stats: ValidationStats; }; export type NormalizeOptions = ConfigDate & { amountMode?: AmountMode; dateMode?: DateMode; }; export type NormalizedDirection = 'credit' | 'debit'; export type NormalizedTransaction = { source: 'bank' | 'credit_card'; direction: NormalizedDirection; amount: number | string | null; amountAbs: number | string | null; postedAt: string | number | Date | null; description: string; descriptionNormalized: string; fitId: string; currency: string | null; account: Record | null; institution: Record | null; raw: Record; warnings: OfxDiagnostic[]; }; export type NormalizedOfxData = { transactions: NormalizedTransaction[]; warnings: OfxDiagnostic[]; };