/** Represents an array of strings split using a given character or character set. Use-case: Defining the return type of a method like `String.prototype.split`. @example ``` import {Split} from 'type-fest'; declare function split(string: S, separator: D): Split; type Item = 'foo' | 'bar' | 'baz' | 'waldo'; const items = 'foo,bar,baz,waldo'; let array: Item[]; array = split(items, ','); ``` @category Template Literals */ export type Split< S extends string, Delimiter extends string > = S extends `${infer Head}${Delimiter}${infer Tail}` ? [Head, ...Split] : S extends Delimiter ? [] : [S];