import { BooleanNor } from '../BooleanNor.js'; import { BooleanNot } from '../BooleanNot.js'; import { BooleanOr } from '../BooleanOr.js'; import { Tuple } from '../Tuple.js'; import { TupleLength } from '../TupleLength.js'; import { n as IsStrictEqual, p as IsZero, l as IsEqual } from './DZEfmVOc.js'; type Add = TupleLength<[...Tuple, ...Tuple]> extends infer U extends number ? U : never; type Substract = Tuple extends [...(infer U), ...Tuple] ? TupleLength : never; type Absolute = `${A}` extends `-${infer U extends number}` ? U : A; type Negative = `-${A}` extends `${infer U extends number}` ? U : `${A}` extends `-${infer V extends number}` ? V : never; type Divide = IsLower extends true ? Q : Divide, B, Add>; type Multiply = IsZero extends true ? P : Multiply, Add>; type Modulo = IsLower extends true ? A : Modulo, B, Add>; type Minimum = IsLower extends true ? A : B; type Maximum = IsLower extends true ? B : A; type IsLower = Substract extends never ? true : false; type IsGreater = BooleanNor, IsEqual>; type IsEqualOrLower = BooleanOr, IsLower>; type IsEqualOrGreater = BooleanNot>; type IsDivisibleBy = IsStrictEqual, Absolute>, 0>; export type { Add as A, Divide as D, IsLower as I, Multiply as M, Negative as N, Substract as S, Absolute as a, Modulo as b, Minimum as c, Maximum as d, IsGreater as e, IsEqualOrLower as f, IsEqualOrGreater as g, IsDivisibleBy as h };