import { Types } from 'mongoose';
import { ModelsService } from 'src/models/models.service';
import { CommonService } from 'src/common/common.service';
import { GlacierService } from 'src/uploads/upload.service';
import { BankStatementParserService } from './bank-statement-parser.service';
export declare class ReconciliationService {
    private readonly model;
    private readonly commonService;
    private readonly glacierService;
    private readonly parser;
    constructor(model: ModelsService, commonService: CommonService, glacierService: GlacierService, parser: BankStatementParserService);
    uploadStatement(user: any, file: any): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    runMatching(businessId: Types.ObjectId, bankTransactionIds: Types.ObjectId[]): Promise<{
        matched: number;
    }>;
    listTransactions(user: any, query: any): Promise<{
        status: string;
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    listPayments(user: any, query: any): Promise<{
        status: string;
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    getSummary(user: any): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    getNeedsReviewPayments(user: any, query: any): Promise<{
        status: string;
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    getSuggestedMatch(user: any, paymentId: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    confirmMatch(user: any, paymentId: string, bankTransactionId: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    manualLink(user: any, paymentId: string, reason: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    private createMatch;
    unlink(user: any, paymentId: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
}
