/** Recursively split a string literal into two parts on the first occurence of the given string, returning an array literal of all the separate parts. */ export type Split = string extends S ? string[] : S extends '' ? [] : S extends `${infer T}${D}${infer U}` ? [T, ...Split] : [S];