import { A as Add, N as Negative, a as Absolute, I as IsLower, S as Substract } from './chunks/CM89_aaq.js'; import { z as IsAnyNumber, D as IsAnyDecimal, p as IsZero, w as IsAllPositive, x as IsAllNegative, l as IsEqual, s as IsNegative } from './chunks/DZEfmVOc.js'; import './BooleanNor.js'; import './BooleanNot.js'; import './BooleanOr.js'; import './Tuple.js'; import './TupleLength.js'; import './BooleanAnd.js'; import './MaybeReadonly.js'; /** * Sum of two integers. * * @template A The first integer. * @template B The second integer. * @returns The sum of the two integers. * @example MathAdd<1, 2> // 3 */ type MathAdd = IsAnyNumber extends true ? number : IsAnyDecimal extends true ? number : IsZero extends true ? B : IsZero extends true ? A : IsAllPositive extends true ? Add : IsAllNegative extends true ? Negative, Absolute>> : IsEqual, Absolute> extends true ? 0 : IsNegative extends true ? IsLower, B> extends true ? Substract> : Negative, B>> : IsNegative extends true ? IsLower, A> extends true ? Substract> : Negative, A>> : never; export type { MathAdd };