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