import { Fn } from './Fn'; import { Pipe } from './Pipe'; export interface Compose, K2 extends Fn = never, K3 extends Fn = never, K4 extends Fn = never, K5 extends Fn = never, K6 extends Fn = never, K7 extends Fn = never, K8 extends Fn = never, K9 extends Fn = never, K10 extends Fn = never, K11 extends Fn = never, K12 extends Fn = never, K13 extends Fn = never, K14 extends Fn = never, K15 extends Fn = never, K16 extends Fn = never, K17 extends Fn = never, K18 extends Fn = never, K19 extends Fn = never, K20 extends Fn = never, K21 extends Fn = never, K22 extends Fn = never, K23 extends Fn = never, K24 extends Fn = never, K25 extends Fn = never, K26 extends Fn = never, K27 extends Fn = never, K28 extends Fn = never, K29 extends Fn = never, K30 extends Fn = never, K31 extends Fn = never, K32 extends Fn = never, K33 extends Fn = never, K34 extends Fn = never, K35 extends Fn = never, K36 extends Fn = never, K37 extends Fn = never, K38 extends Fn = never, K39 extends Fn = never, K40 extends Fn = never, K41 extends Fn = never, K42 extends Fn = never> extends Fn> { out: this extends Record<'in_raw', infer I extends K1['in']> ? Pipe : ComposeOutput; } type ComposeOutput, K2 extends Fn = never, K3 extends Fn = never, K4 extends Fn = never, K5 extends Fn = never, K6 extends Fn = never, K7 extends Fn = never, K8 extends Fn = never, K9 extends Fn = never, K10 extends Fn = never, K11 extends Fn = never, K12 extends Fn = never, K13 extends Fn = never, K14 extends Fn = never, K15 extends Fn = never, K16 extends Fn = never, K17 extends Fn = never, K18 extends Fn = never, K19 extends Fn = never, K20 extends Fn = never, K21 extends Fn = never, K22 extends Fn = never, K23 extends Fn = never, K24 extends Fn = never, K25 extends Fn = never, K26 extends Fn = never, K27 extends Fn = never, K28 extends Fn = never, K29 extends Fn = never, K30 extends Fn = never, K31 extends Fn = never, K32 extends Fn = never, K33 extends Fn = never, K34 extends Fn = never, K35 extends Fn = never, K36 extends Fn = never, K37 extends Fn = never, K38 extends Fn = never, K39 extends Fn = never, K40 extends Fn = never, K41 extends Fn = never, K42 extends Fn = never> = FindFirstNonNever<[ K42, K41, K40, K39, K38, K37, K36, K35, K34, K33, K32, K31, K30, K29, K28, K27, K26, K25, K24, K23, K22, K21, K20, K19, K18, K17, K16, K15, K14, K13, K12, K11, K10, K9, K8, K7, K6, K5, K4, K3, K2, K1 ]>['out']; type FindFirstNonNever[]> = K extends [ infer First extends Fn, ...infer Rest extends Fn[] ] ? [First] extends [never] ? FindFirstNonNever : First : never; export {};