export type MergeStrings = K extends string | number | bigint | boolean | null | undefined ? `____Fusion${S}${K}` : never; export type KeysOfArrayMapOrRecord = I extends Array ? number : I extends Map ? K : keyof I; export type PropertyOfArrayMapOrRecord = I extends Array ? T : I extends Map ? V : I[keyof I]; export type KeepArrayMapOrRecord = I extends Array ? Array : I extends Map ? Map : Record; export type KeyType = T extends Array ? number : T extends Map ? K : T extends Set ? K : T extends Record ? K : keyof T; export type ValueType = T extends Array ? V : T extends Map ? V : T extends Set ? true : T extends Record ? V : T[keyof T];