Eval

Eval functions.

type Comparison = string
type DoubleMethod = string
type EvalBinaryTuple = ArrayOf2<boolean, number>
interface EvalObject  {
  evaluations: Array
  name?: string
  operationId: string
  variables?: NumberRecord
}
type EvalObjectOrValue = EvalObject | Value
interface EvalPoint  {
  x: EvalValue
  y: EvalValue
}
interface EvalRect 
extends EvalPoint, EvalSize {
  height: EvalValue
  width: EvalValue
  x: EvalValue
  y: EvalValue
}
interface EvalSize  {
  height: EvalValue
  width: EvalValue
}
type EvalValue = Evaluation | Value
interface Evaluation  {
  asObject: EvalObject
  evaluation?: Evaluation
  toJSON: () => EvalObject
  toNumber: () => number
  toString: () => string
  toValue: () => Value
  variables: NumberRecord
  variablesAll: NumberRecord
}
type EvaluationType = string
type GuardedEval = (value: unknown, key: string) => boolean
type MathDouble = (firstNumber: number, secondNumber: number) => number
type MathProperty = object
type MathSingle = (number: number) => number
type Operator = string
type SingleMethod = string
function Eval(
  id: string | EvalObject, 
  value?: OrArray<EvalValue>, 
  name?: string, 
  evaluation?: Evaluation
): Evaluation
function pointEvaluationRound(
  point: EvalPoint, 
  rounding: Rounding
): EvalPoint
function pointEvaluationTranslate(
  point: Point | EvalPoint, 
  translate: Point | EvalPoint, 
  negate?: boolean
): EvalPoint
function signalsEvaluate(
  expression: string, 
  signalsRecord: Record<string, Record<string, WithScalar>>, 
  start?: number, 
  stop?: number
): BooleanOrNot
/**
 * Round size to the nearest even
 * dimensions.
 */
function sizeEvaluationEven(
  size: EvalSize, 
  rounding: Rounding
): EvalSize
function tweenEvaluation(
  name: string, 
  start: EvalValue, 
  end: EvalValue, 
  pos: EvalValue
): EvalValue