import { ISplitTransaction, IUploadedBankTransaction, IUploadedBankTransactionWithInfo } from '../models/UploadedBankTransaction.model';
import { IAllocatedBankTransaction, PreSplitUploadedBankTransactionWithInfo } from '../models/AllocatedBankTransaction.model';
import { LoanTransactionsService } from './loan-transactions.service';
import { CashAllocationService } from './cash-allocation.service';
import { LoanStatementStatusService } from './loan-statement-status.service';
export declare class BankUploadedTransactionsService {
    private readonly cashAllocationService;
    private readonly loanStatementStatusService;
    private readonly getLoanTransactionsService;
    constructor(cashAllocationService: CashAllocationService, loanStatementStatusService: LoanStatementStatusService, getLoanTransactionsService: () => LoanTransactionsService);
    uploadTransactions(transactions: IUploadedBankTransaction[]): Promise<string>;
    getAllocatedBankTransactions(startDate: Date, endDate: Date): Promise<IAllocatedBankTransaction[]>;
    deleteAllocatedBankTransaction(transactionIds: string[]): Promise<void>;
    getMappedUploadedBankTransactions(startDate: Date, endDate: Date): Promise<IUploadedBankTransactionWithInfo[]>;
    getUploadedBankTransactions(startDate: Date, endDate: Date): Promise<IUploadedBankTransaction[]>;
    getAllocatedTransactions(date: Date): Promise<IAllocatedBankTransaction[]>;
    getPreAllocatedTransactions(date: Date): Promise<{
        allocatedBankTransactions: IAllocatedBankTransaction[];
        uploadedBankTransactions: PreSplitUploadedBankTransactionWithInfo[];
    }>;
    resetAllocatedBankTransactions(date: Date): Promise<void>;
    createAllocatedBankTransactions(date: Date): Promise<void>;
    convertBankTransactions(startDate: Date, userId: string): Promise<string[]>;
    recalculateProducts(productIds: string[], productMap: Record<string, string>): Promise<void>;
    preSplitBankTransactions(transactionId: string, splitTransaction: ISplitTransaction[]): Promise<void>;
    deleteBankTransaction(transactionIds: string[]): Promise<void>;
    revertAllBankTransactions(startDate: Date, endDate: Date, userId: string): Promise<void>;
    revertBankTransactions(transactionIds: string[], userId: string): Promise<void>;
    getUniqueDates(): Promise<any[]>;
    saveAllocatedBankTransactions(date: Date, transactions: IAllocatedBankTransaction[]): Promise<void>;
    createAllocatedBankTransaction(transaction: IAllocatedBankTransaction): Promise<void>;
    updateLockStatus(date: Date, isLocked: boolean): Promise<void>;
}
