import type { Add } from "./add"; import type { NumberToArray } from "./numberToArray"; import type { Length } from "../logic/length"; export type Subtract = `${A}` extends `-${infer N extends number}` ? `${B}` extends `-${infer M extends number}` ? Subtract : `-${Add}` extends `${infer R extends number}` ? R : never : `${B}` extends `-${infer M extends number}` ? Length<[...NumberToArray, ...NumberToArray]> : NumberToArray extends [...NumberToArray, ...infer R] ? Length : NumberToArray extends [...NumberToArray, ...infer R] ? `-${Length}` extends `${infer M extends number}` ? M : never : never;