import { unset, _ } from "../../core/Core"; import { Equal, IsNever } from "../../helpers"; export type ExcludePlaceholders = xs extends [ infer first, ...infer rest ] ? Equal extends true ? ExcludePlaceholders : ExcludePlaceholders : output; type MergeArgsRec = partialArgs extends [infer partialFirst, ...infer partialRest] ? IsNever extends true ? MergeArgsRec : [partialFirst] extends [_] ? pipedArgs extends [infer pipedFirst, ...infer pipedRest] ? MergeArgsRec : [...output, ...ExcludePlaceholders] : MergeArgsRec : [...output, ...pipedArgs]; type EmptyIntoPlaceholder = IsNever extends true ? never : [x] extends [unset] ? _ : x; type MapEmptyIntoPlaceholder = xs extends [ infer first, ...infer rest ] ? MapEmptyIntoPlaceholder]> : output; export type MergeArgs = MergeArgsRec>; export {};