jsfinancial
Version:
Library for financial calculations
173 lines (164 loc) • 4.84 kB
TypeScript
/**
* Simple Intrest
* The future value of principle amount for given rate and tenure
* @param {number} principal
* @param {number} rate
* @param {number} tenure
* @returns number
*/ export class Finance {
public SimpleIntrest(principal: number, rate: number, tenure: number): number;
/**
* RoundOf
* Round of decimal number to given no of decimal digit
* @param {number} value
* @param {number=2} decimal
* @returns number
*/
public RoundOf(value: number, decimal: number): number;
/**
* CompoundIntrestRate (Rate of Return)
* Intrest rate on principal amount to get given future value and tenure
* @param {number} principal
* @param {number} futureValue
* @param {number} tenure
* @param {number} compoundingFrequency
* @returns number
*/
public CompoundIntrestRate(
principal: number,
futureValue: number,
tenure: number,
compoundingFrequency: number
): number;
/**
* Compound Intrest
* Future value of principal over tenure for given rate and compounded frequency
* @param {number} principal
* @param {number} rate
* @param {number} tenure
* @param {number} compundingFrequency
* @returns number
*/
public CompoundIntrest(
principal: number,
rate: number,
tenure: number,
compundingFrequency: number
): number;
/**
* Compound Intrest Principal
* Get principal value for given future value and intrest rate, compounding frequency
* @param {number} futureValue
* @param {number} rate
* @param {number} tenure
* @param {number} compoundingFrequency
* @returns number
*/
public CompoundIntrestPrincipal(
futureValue: number,
rate: number,
tenure: number,
compoundingFrequency: number
): number;
/**
* Compound Intrest Tenure
* Get tenure for given future value and principal amount with given intrest rate and compounding frequency
* @param {number} principal
* @param {number} futureValue
* @param {number} rate
* @param {number} compoundingFrequency
* @returns number
*/
public CompoundIntrestTenure(
principal: number,
futureValue: number,
rate: number,
compoundingFrequency: number
): number;
/**
* Compound Intrest With SIP(Systematically Investment Plan)
* Get future value of principal compounded for teture with given intrest rate and invested regular amound
* @param {number} principal
* @param {number} tenure
* @param {number} rate
* @param {number} compoundingFrequency
* @param {number} investmentAmount
* @param {number} investmentFrequency
* @returns number
*/
public CompoundIntrestWithSIP(
principal: number,
tenure: number,
rate: number,
compoundingFrequency: number,
investmentAmount: number,
investmentFrequency: number
): number;
/**
* Compound Intrest With SIP having Breakdown Data
* Get all data of compounded intrest for regurarly invested amout with breakdown
* This is great data for charts
* @param {number} principal
* @param {number} tenure
* @param {number} rate
* @param {number} compoundingFrequency
* @param {number} investmentAmount
* @param {number} investmentFrequency
* @param {number=1} breakDownNoOfPeriods
* @returns Object
*/
public CompoundIntrestWithSIPBreakdown(
principal: number,
tenure: number,
rate: number,
compoundingFrequency: number,
investmentAmount: number,
investmentFrequency: number,
breakDownNoOfPeriods: number
): {
futureValue: number;
intrest: number;
principal: number;
breakDown: Array<{
periodNo: number;
amountInvested: number;
intrest: number;
openingBalance: number;
closingBalance: number;
}>;
};
/**
* Equated Montly Installment (EMI)
* Get emi amout for given principal and intreste rate and tenure
* @param {number} principal
* @param {number} rate
* @param {number} tenure
* @returns number
*/
public EMI(principal: number, rate: number, tenure: number): number;
/**
* Loan Repayment
* Get emi data and repayment montly breakdown of loan
* for given principla, intrest rate and tenure
* @param {number} principal
* @param {number} rate
* @param {number} tenure
* @returns number
*/
public LoanRepayment(
principal: number,
rate: number,
tenure: number
): {
principal: number;
emi: number;
intrest: number;
tenure: number;
repayment: Array<{
periodNo: number;
intrest: number;
principal: number;
principalOutstanding: number;
}>;
};
}