import type { Shunt } from '../../mod.js'; /** 带解包Promise的fn */ export type PFn = (a: A extends Promise ? U : A) => B; /** 将数据带上Promise */ export type PromiseChange = A extends Promise ? Promise : Promise; /** ## PipeResult : if A or B is Promise,return Promise ; else return NoPromise */ export type PipeResult = A extends Promise ? A : B extends Promise ? Promise : A; export type FlowReturn = (a: T) => R; export type PipeShunt = X extends Shunt ? M : X; export type PromisePipeShunt = PromiseChange extends Promise> ? Promise : X; export type AutoPipeShunt = X extends Promise ? PromisePipeShunt : PipeShunt; export type CollPipeShunt = A extends Shunt ? B extends Shunt ? Shunt : Shunt : B extends Shunt ? Shunt : null; export type PromiseCollPipeShunt = PromiseChange extends Promise> ? PromiseChange extends Promise> ? Promise> : Promise> : PromiseChange extends Promise> ? Promise> : null; export type AutoCollPipeShunt = A extends Promise ? PromiseCollPipeShunt : B extends Promise ? PromiseCollPipeShunt : CollPipeShunt; export type PipeShuntReturn = X extends Shunt ? (R extends Shunt ? A | B : R) | F : R extends Shunt ? A | B : R; export type PromisePipeShuntReturn = PromiseChange extends Promise> ? Promise<(PromiseChange extends Promise> ? A | B : R) | F> : PromiseChange extends Promise> ? Promise : Promise; export type AutoPipeShuntReturn = PipeResult extends Promise ? PromisePipeShuntReturn : PipeShuntReturn; //# sourceMappingURL=pipe.type.d.ts.map