import type { Identity, IMapping, IParser } from './parser'; import type { Parse } from './parse'; export interface Union extends IParser { type: 'Union'; parsers: [...Parsers]; } export type ParseUnion = (Parsers extends [infer Left extends IParser, ...infer Right extends IParser[]] ? Parse extends [infer Value extends unknown, infer Rest extends string] ? [Value, Rest] : ParseUnion : []);