export type ValueTypes = "string" | "number" | "boolean" | "object" | "array" | "undefined"; export type FunctionKey = `$${string}`; export type Function = { [key: FunctionKey]: any[]; }; export type SolvedParamType = string | number | boolean | SolvedParamType[]; export type RefType = { $ref: string; $default?: SolvedParamType | RefType; }; export type RootRefType = { $rootRef: string; $default?: SolvedParamType | RootRefType; }; export type ParamType = string | number | boolean | RefType | RootRefType | Function | ParamType[]; export declare enum CalcOperators { ADDITION = "+", SUBTRACTION = "-", MULTIPLICATION = "*", DIVISION = "/" } export type CalcEquation = [ number | RefType | RootRefType, CalcOperators, number | RefType | RootRefType ]; export type ConditionalEquation = [boolean, ParamType, ParamType]; export type EqualityEquation = [ParamType, ParamType]; export type FunctionsType = Record>; export type FunctionHandler = (value: any, params: any, ref: Record, rootRef: Record, functions: Partial) => any;