import { IAccountRepository, ITransactionRepository } from '../interfaces'; import { IAccount, ICard, IInvoice, ITransaction } from '../models'; export declare class TransactionService { protected accountRepository: IAccountRepository; protected transactionRepository: ITransactionRepository; constructor(accountRepository: IAccountRepository, transactionRepository: ITransactionRepository); complete(account: IAccount, transaction: ITransaction, tenantId?: string | null): Promise<{ account: IAccount; transaction: ITransaction; }>; create(accountReference: string, amount: number, card: ICard | null, collectionReference: string, invoice: IInvoice | null, metadata: { [key: string]: string | null; } | null, notifications: Array<{ metadata: { [key: string]: string | null; } | null; type: 'sms' | 'webhook'; }> | null, reference: string, type: 'credit' | 'debit', tenantId?: string | null): Promise<{ account: IAccount; transaction: ITransaction; }>; createProcessComplete(accountReference: string, amount: number, card: ICard | null, collectionReference: string, invoice: IInvoice | null, metadata: { [key: string]: string | null; } | null, notifications: Array<{ metadata: { [key: string]: string | null; } | null; type: 'sms' | 'webhook'; }> | null, reference: string, type: 'credit' | 'debit', tenantId?: string | null): Promise<{ account: IAccount; transaction: ITransaction; }>; createProcessCompleteMultiple(requests: Array<{ accountReference: string; amount: number; card: ICard | null; collectionReference: string; invoice: IInvoice | null; metadata: { [key: string]: string | null; } | null; notifications: Array<{ metadata: { [key: string]: string | null; } | null; type: 'sms' | 'webhook'; }> | null; reference: string; type: 'credit' | 'debit'; }>, tenantId?: string | null): Promise>; fail(account: IAccount, transaction: ITransaction, tenantId?: string | null): Promise<{ account: IAccount; transaction: ITransaction; }>; find(reference: string, statuses: Array<'created' | 'processed' | 'completed' | 'failed'>, tenantId?: string | null): Promise; findAll(accountReference: string, tenantId?: string | null): Promise>; process(account: IAccount, transaction: ITransaction, tenantId?: string | null): Promise<{ account: IAccount; transaction: ITransaction; }>; }