hyperformula-dc
Version:
HyperFormula is a JavaScript engine for efficient processing of spreadsheet-like data and formulas
341 lines (340 loc) • 11.5 kB
TypeScript
/**
* @license
* Copyright (c) 2021 Handsoncode. All rights reserved.
*/
import { ProcedureAst } from '../../parser';
import { InterpreterState } from '../InterpreterState';
import { InterpreterValue, NumberType } from '../InterpreterValue';
import { ArgumentTypes, FunctionPlugin, FunctionPluginTypecheck } from './FunctionPlugin';
export declare class FinancialPlugin extends FunctionPlugin implements FunctionPluginTypecheck<FinancialPlugin> {
static implementedFunctions: {
PMT: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
defaultValue?: undefined;
} | {
argumentType: ArgumentTypes;
defaultValue: number;
})[];
returnNumberType: NumberType;
};
IPMT: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
defaultValue?: undefined;
} | {
argumentType: ArgumentTypes;
defaultValue: number;
})[];
returnNumberType: NumberType;
};
PPMT: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
defaultValue?: undefined;
} | {
argumentType: ArgumentTypes;
defaultValue: number;
})[];
returnNumberType: NumberType;
};
FV: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
defaultValue?: undefined;
} | {
argumentType: ArgumentTypes;
defaultValue: number;
})[];
returnNumberType: NumberType;
};
CUMIPMT: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
greaterThan: number;
minValue?: undefined;
maxValue?: undefined;
} | {
argumentType: ArgumentTypes;
minValue: number;
greaterThan?: undefined;
maxValue?: undefined;
} | {
argumentType: ArgumentTypes;
minValue: number;
maxValue: number;
greaterThan?: undefined;
})[];
returnNumberType: NumberType;
};
CUMPRINC: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
greaterThan: number;
minValue?: undefined;
maxValue?: undefined;
} | {
argumentType: ArgumentTypes;
minValue: number;
greaterThan?: undefined;
maxValue?: undefined;
} | {
argumentType: ArgumentTypes;
minValue: number;
maxValue: number;
greaterThan?: undefined;
})[];
returnNumberType: NumberType;
};
DB: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
minValue: number;
maxValue?: undefined;
defaultValue?: undefined;
} | {
argumentType: ArgumentTypes;
minValue: number;
maxValue: number;
defaultValue: number;
})[];
returnNumberType: NumberType;
};
DDB: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
minValue: number;
greaterThan?: undefined;
defaultValue?: undefined;
} | {
argumentType: ArgumentTypes;
greaterThan: number;
defaultValue: number;
minValue?: undefined;
})[];
returnNumberType: NumberType;
};
DOLLARDE: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
minValue?: undefined;
} | {
argumentType: ArgumentTypes;
minValue: number;
})[];
};
DOLLARFR: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
minValue?: undefined;
} | {
argumentType: ArgumentTypes;
minValue: number;
})[];
};
EFFECT: {
method: string;
parameters: {
argumentType: ArgumentTypes;
minValue: number;
}[];
returnNumberType: NumberType;
};
ISPMT: {
method: string;
parameters: {
argumentType: ArgumentTypes;
}[];
};
NOMINAL: {
method: string;
parameters: {
argumentType: ArgumentTypes;
minValue: number;
}[];
returnNumberType: NumberType;
};
NPER: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
defaultValue?: undefined;
} | {
argumentType: ArgumentTypes;
defaultValue: number;
})[];
};
PV: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
defaultValue?: undefined;
} | {
argumentType: ArgumentTypes;
defaultValue: number;
})[];
returnNumberType: NumberType;
};
RATE: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
greaterThan: number;
defaultValue?: undefined;
} | {
argumentType: ArgumentTypes;
greaterThan?: undefined;
defaultValue?: undefined;
} | {
argumentType: ArgumentTypes;
defaultValue: number;
greaterThan?: undefined;
})[];
returnNumberType: NumberType;
};
RRI: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
greaterThan: number;
} | {
argumentType: ArgumentTypes;
greaterThan?: undefined;
})[];
returnNumberType: NumberType;
};
SLN: {
method: string;
parameters: {
argumentType: ArgumentTypes;
}[];
returnNumberType: NumberType;
};
SYD: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
greaterThan?: undefined;
} | {
argumentType: ArgumentTypes;
greaterThan: number;
})[];
returnNumberType: NumberType;
};
TBILLEQ: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
minValue: number;
greaterThan?: undefined;
} | {
argumentType: ArgumentTypes;
greaterThan: number;
minValue?: undefined;
})[];
returnNumberType: NumberType;
};
TBILLPRICE: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
minValue: number;
greaterThan?: undefined;
} | {
argumentType: ArgumentTypes;
greaterThan: number;
minValue?: undefined;
})[];
returnNumberType: NumberType;
};
TBILLYIELD: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
minValue: number;
greaterThan?: undefined;
} | {
argumentType: ArgumentTypes;
greaterThan: number;
minValue?: undefined;
})[];
returnNumberType: NumberType;
};
FVSCHEDULE: {
method: string;
parameters: {
argumentType: ArgumentTypes;
}[];
returnNumberType: NumberType;
};
NPV: {
method: string;
parameters: {
argumentType: ArgumentTypes;
}[];
repeatLastArgs: number;
returnNumberType: NumberType;
};
MIRR: {
method: string;
parameters: {
argumentType: ArgumentTypes;
}[];
returnNumberType: NumberType;
};
PDURATION: {
method: string;
parameters: {
argumentType: ArgumentTypes;
greaterThan: number;
}[];
};
XNPV: {
method: string;
parameters: ({
argumentType: ArgumentTypes;
greaterThan: number;
} | {
argumentType: ArgumentTypes;
greaterThan?: undefined;
})[];
};
};
pmt(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
ipmt(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
ppmt(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
fv(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
cumipmt(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
cumprinc(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
db(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
ddb(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
dollarde(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
dollarfr(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
effect(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
ispmt(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
nominal(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
nper(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
rate(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
pv(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
rri(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
sln(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
syd(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
tbilleq(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
tbillprice(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
tbillyield(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
fvschedule(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
npv(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
mirr(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
pduration(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
xnpv(ast: ProcedureAst, state: InterpreterState): InterpreterValue;
}