import Tokenizer from './tokenizer'; import { TokenType, FormulaValues, FormulaValueOptions } from './type'; import type { IFormulaValue, IFormulaDataSource, IFormulaOperator, IFormulaFunction, FormulaCustomFunctionItem, Token } from './type'; import AbsFormulaFunction from './base/function'; import { registerFormulaFunction } from './functions'; interface FormulaOptions extends FormulaValueOptions { onCreateParam?: (token: Token, options: FormulaValueOptions) => IFormulaValue; } declare class Formula { lastError: string; origText: string; tokenizer: Tokenizer; formulas: FormulaValues; operators: IFormulaOperator[]; refs: FormulaValues; customFunctions: Record; constructor(); registerFunction: typeof registerFormulaFunction; private expression; private verifyFormulaCount; private verify; clear(): void; parse(formula: string, options?: FormulaOptions): void; private _execute; execute(dataSource?: IFormulaDataSource, options?: FormulaValueOptions): any; } export { AbsFormulaFunction, registerFormulaFunction, TokenType, }; export type { IFormulaFunction, IFormulaDataSource, FormulaOptions, FormulaCustomFunctionItem, }; export default Formula;