declare namespace VanX { type StateOf = { readonly [K in keyof T]: Van.State } type ValueType = T extends (infer V)[] ? V : T[keyof T] type KeyType = T extends unknown[] ? number : string type ReplacementFunc = T extends (infer V)[] ? (items: V[]) => readonly V[] : (items: [string, T[keyof T]][]) => readonly [string, T[keyof T]][] }