import pdfMake from 'pdfmake/build/pdfmake';
import { FinancialIndexesService } from './financial-indexes.service';
import { LoanChargesService } from './loan-charges.service';
import { LoanStatementService } from './loan-statement.service';
import { LoanStatementBalanceService } from './loan-statement-balance.service';
import { LoanTransactionsService } from './loan-transactions.service';
import { OrganizationsService } from './organizations.service';
import { TermLoanService } from './term-loan.service';
interface IPdfServiceConfig {
    rootDir: string;
    title: string;
}
export declare const defaultPDFPageMarginSize = 30;
export declare const defaultPDFPageSize: {
    width: number;
    height: number;
};
export declare const defaultPDFPageSettings: {
    margin: number;
    docWidth: number;
    docHeight: number;
};
export declare class PdfService {
    private readonly financialIndexesService;
    private readonly loanChargesService;
    private readonly loanStatementBalanceService;
    private readonly loanStatementService;
    private readonly loanTransactionsService;
    private readonly organizationsService;
    private readonly termLoanService;
    private readonly config;
    margin: number;
    docWidth: number;
    docHeight: number;
    constructor(config: IPdfServiceConfig, financialIndexesService: FinancialIndexesService, loanChargesService: LoanChargesService, loanStatementBalanceService: LoanStatementBalanceService, loanStatementService: LoanStatementService, loanTransactionsService: LoanTransactionsService, organizationsService: OrganizationsService, termLoanService: TermLoanService);
    addHeaderNew(organizationSubfolder: string): {
        alignment: string;
        columns: {
            image: string;
            width: number;
        }[];
    };
    private getProductStatementData;
    getTermLoan(productId: string, start: Date): Promise<{
        monthlyPrincipal: number;
        dueDate: Date;
        termLoanTableData: any[];
    }>;
    createStatementDoc<T extends pdfMake.TCreatedPdf | {
        total: number;
        dueDate: Date;
        productTotals: {
            [productId: string]: number;
        };
    }>(params: {
        borrowerId: string;
        start: string;
        end: string;
    }, getOnlyTotal?: boolean): Promise<T>;
}
export {};
