import { DoubleType, InferMathTypePrec, IntegralType, MathType, NumericType } from '.' import { Type } from '..' import { AnyExpression, Expression } from '../../expressions' import { IntegralExpression } from './integral' export interface NumberExpression extends AnyExpression { add (arg: T['input']): NumberExpression add (arg: NumberExpression): NumberExpression> add (arg: IntegralExpression): NumberExpression> add (arg: T['input']): NumberExpression add (arg: NumberExpression): NumberExpression> add (arg: IntegralExpression): NumberExpression> sub (arg: T['input']): NumberExpression sub (arg: NumberExpression): NumberExpression> sub (arg: IntegralExpression): NumberExpression> mul (arg: T['input']): NumberExpression mul (arg: NumberExpression): NumberExpression> mul (arg: IntegralExpression): NumberExpression> div (arg: T['input']): NumberExpression div (arg: NumberExpression): NumberExpression> div (arg: IntegralExpression): NumberExpression> mod (arg: T['input']): NumberExpression mod (arg: NumberExpression): NumberExpression> mod (arg: IntegralExpression): NumberExpression> neg (): NumberExpression abs (): NumberExpression pow (arg: T['input']): NumberExpression pow (arg: Expression): Expression> pow (arg: NumberExpression | IntegralExpression): Expression> sqrt (): Expression> cbrt (): Expression> }