interface AnyObject { [key: string]: any; } type KVInfer = { [K in keyof T]: T[K] }; type Void = T | undefined | null;