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>; }