Would the following work for you?
type Piped = { a: true; b: true; c: true };
const result = pipeline.reduce((acc, fct) => ({ ...acc, ...fct(acc) }), {} as Piped);
Of course you can declare the Piped
type as an intersection of other types or whatever, but don't make it too complicate.