mortgage-calculator-package
Version:
A simple, embeddable mortgage calculator that dynamically generates an interactive and styled calculator widget. It allows users to input mortgage amount, interest rate, amortization period, and payment frequency, and calculates the monthly payment based
55 lines (54 loc) • 1.75 kB
TypeScript
export interface MortgageData {
loanAmount: number;
interestRate: number;
rateTerm: number;
amortization: number;
paymentFrequency: 'monthly' | 'biweekly' | 'weekly';
loanType: 'regular' | 'interest only';
compounding: 'daily' | 'weekly' | 'bi-weekly' | 'monthly' | 'quarterly' | 'semi-annual';
paymentIncrease: number;
paymentIncreaseType: 'dollar' | 'percentage';
oneTimePrePayment: number;
annualPrePayment: number;
}
export interface MortgageResults {
mortgagePayment: number;
principal: number;
interest: number;
totalInterest: number;
totalCost: number;
loanAmount: number;
balanceEndOfTerm: number;
fiveYearBreakdown: {
totalPaid: number;
interestPaid: number;
principalPaid: number;
balanceRemaining: number;
};
acceleratedResults?: {
adjustedPayment: number;
payoffYears: number;
totalInterestSaved: number;
timeSaved: string;
balanceComparison: Array<{
year: number;
regularBalance: number;
acceleratedBalance: number;
}>;
};
}
export interface AmortizationPayment {
year: number;
balanceRemaining: number;
annualInterestPaid: number;
annualPrincipalPaid: number;
annualTotalPaid: number;
totalInterestPaid: number;
totalPrincipalPaid: number;
totalPaid: number;
}
export declare function formatCurrency(amount: number): string;
export declare function formatCurrencyDecimal(amount: number): string;
export declare function formatNumber(num: number): string;
export declare function parseCurrency(value: string): number;
export declare function calculateMortgage(data: MortgageData): MortgageResults;