type Zero = S extends `${infer A}${infer B}` ? (B extends "" ? Z : `${Zero}${Zero}`) : ""; type ZZero = S extends `${infer _A}${infer B}` ? Zero : ""; type Increment = T extends "0" ? "1" : T extends "1" ? "2" : T extends "2" ? "3" : T extends "3" ? "4" : T extends "4" ? "5" : T extends "5" ? "6" : T extends "6" ? "7" : T extends "7" ? "8" : T extends "8" ? "9" : never; export type AddOne = S extends "9" ? "10" : _AddOne; type _AddOne = S extends `${infer A}${infer B}` ? `${Increment extends never ? (_AddOne extends never ? Increment : A) : A}${Increment extends never ? _AddOne extends never ? ZZero : _AddOne : Increment}` : never; type Decrement = T extends "1" ? "0" : T extends "2" ? "1" : T extends "3" ? "2" : T extends "4" ? "3" : T extends "5" ? "4" : T extends "6" ? "5" : T extends "7" ? "6" : T extends "8" ? "7" : T extends "9" ? "8" : never; export type MinusOne = S extends "10" ? "9" : _MinusOne; type _MinusOne = __MinusOne extends `0${infer A}` ? `${A}` : __MinusOne; type __MinusOne = S extends `${infer A}${infer B}` ? `${Decrement extends never ? (__MinusOne extends never ? Decrement : A) : A}${Decrement extends never ? __MinusOne extends never ? ZZero : __MinusOne : Decrement}` : never; export type TimesTen = S extends string | number ? `${S}0` : never; export {}; //# sourceMappingURL=math.d.ts.map