Stubify<T>: T extends Stubable ? Stub<T> : T extends Map<infer K, infer V> ? Map<Stubify<K>, Stubify<V>> : T extends Set<infer V> ? Set<Stubify<V>> : T extends (infer V)[] ? Stubify<V>[] : T extends ReadonlyArray<infer V> ? ReadonlyArray<Stubify<V>> : T extends { [
key:
string | number]
: unknown; } ? { [K in keyof T]: Stubify<T[K]> } : T