import type { Page } from 'puppeteer';
import { type MaxTransaction } from './types/max/get-transactions-for-month.js';
interface TransactionsAccount {
    accountNumber: string;
    balance?: number;
    txns: MaxTransaction[];
}
export type MaxScrapingResult = TransactionsAccount[];
export interface MaxOptions {
    /**
     * the date to fetch transactions from (can't be before the minimum allowed time difference for the scraper)
     */
    startDate?: Date;
    /**
     * scrape transactions to be processed X months in the future
     */
    futureMonthsToScrape?: number;
}
export type MaxCredentials = {
    username: string;
    password: string;
};
export declare function max(page: Page, credentials: MaxCredentials, options?: MaxOptions): Promise<{
    getTransactions: () => Promise<{
        accountNumber: string;
        txns: {
            actualPaymentAmount: number | null;
            arn: string | null;
            cardIndex: number;
            categoryId: number;
            comments: string;
            discountKeyAmount: null;
            discountKeyRecType: null;
            isRegisterCh: boolean;
            isSpreadingAutorizationAllowed: boolean;
            issuerId: number;
            merchantData: {
                address: string | null;
                coordinates: null;
                maxPhone: boolean;
                merchant: string;
                merchantCommercialName: string | null;
                merchantNumber: string;
                merchantPhone: string;
                merchantTaxId: string | null;
            };
            merchantName: string;
            originalAmount: number;
            originalCurrency: "ILS";
            paymentCurrency: number | null;
            planName: string;
            planTypeId: number;
            promotionAmount: number | null;
            promotionClub: string | null;
            promotionType: null;
            purchaseDate: string;
            refIndex: number;
            runtimeReference: {
                id: string;
                type: number;
            };
            runtimeReferenceId: null;
            shortCardNumber: string;
            spreadTransactionByCampainInd: boolean;
            spreadTransactionByCampainNumber: number | null;
            tableType: number;
            tag: null;
            uid: string;
            upSaleForTransactionResult: null;
            userIndex: number;
            dealData?: {
                acq: string | null;
                adjustmentAmount: null;
                adjustmentType: number;
                amount: number | null;
                amountIls: number | null;
                amountLeft: number | null;
                arn: string | null;
                authorizationNumber: string;
                cardName: string | null;
                cardToken: string | null;
                commissionVat: number | null;
                directExchange: null;
                exchangeCommissionAmount: null;
                exchangeCommissionMaam: null;
                exchangeCommissionType: null;
                exchangeDirect: string | null;
                exchangeRate: number | null;
                indexRateBase: null;
                indexRatePmt: null;
                interestAmount: number | null;
                isAllowedSpreadWithBenefit: boolean;
                issuerCurrency: string | null;
                issuerExchangeRate: null;
                originalTerm: number | null;
                percentMaam: number | null;
                plan: number | null;
                posEntryEmv: number;
                processingDate: string | null;
                purchaseAmount: null;
                purchaseTime: string | null;
                refNbr: string | null;
                showCancelDebit: boolean;
                showSpread: boolean;
                showSpreadBenefitButton: boolean;
                showSpreadButton: boolean;
                showSpreadForLeumi: boolean;
                tdmCardToken: string | null;
                tdmTransactionType: number | null;
                transactionType: number;
                txnCode: number;
                userName: string;
                withdrawalCommissionAmount: null;
            } | undefined;
            ethocaInd?: boolean | undefined;
            fundsTransferComment?: string | null | undefined;
            fundsTransferReceiverOrTransfer?: string | null | undefined;
            paymentDate?: string | null | undefined;
            receiptPDF?: null | undefined;
        }[];
    }[]>;
}>;
export {};
