@untemps/loan-schedule
Version:
Class to generate a schedule of loan payments
51 lines (50 loc) • 1.51 kB
TypeScript
declare enum LoanScheduleAmortizationType {
CREDIT = "credit",
DEBIT = "debit"
}
declare enum LoanScheduleCompute {
PAYMENT = "payment",
INSURANCE = "insurance"
}
type LoanScheduleAmortization = {
label?: string;
value?: number;
rate?: number;
type?: LoanScheduleAmortizationType;
compute?: LoanScheduleCompute;
};
type LoanScheduleConfig = {
headers?: {
year: any;
balance: any;
};
};
type LoanScheduleYears = {
headers?: LoanScheduleAmortization[];
values?: number[][];
};
type LoanScheduleSettings = {
amount: number;
term: number; // In years
interestRate: number;
insuranceRate: number;
};
interface ILoanSchedule {
readonly loanSettings: LoanScheduleSettings;
readonly years: LoanScheduleYears;
}
declare class LoanSchedule implements ILoanSchedule {
readonly loanSettings: LoanScheduleSettings;
private readonly loanAmortizations;
private readonly config;
constructor(loanSettings?: LoanScheduleSettings, loanAmortizations?: LoanScheduleAmortization[], config?: LoanScheduleConfig);
get years(): LoanScheduleYears;
private getHeaders;
private getYears;
private mapValues;
private static getMonthlyPayment;
private static getMonthlyInsurance;
private static getDynamicValue;
private static getComputedValue;
}
export { LoanSchedule, ILoanSchedule, LoanScheduleYears, LoanScheduleAmortization, LoanScheduleAmortizationType, LoanScheduleCompute, LoanScheduleConfig };