declare function compose<Input, A1>(fn1: (input: Input) => A1): (input: Input) => A1;
declare function compose<Input, A1, A2>(fn1: (input: Input) => A1, fn2: (input: A1) => A2): (input: Input) => A2;
declare function compose<Input, A1, A2, A3>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3): (input: Input) => A3;
declare function compose<Input, A1, A2, A3, A4>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4): (input: Input) => A4;
declare function compose<Input, A1, A2, A3, A4, A5>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5): (input: Input) => A5;
declare function compose<Input, A1, A2, A3, A4, A5, A6>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6): (input: Input) => A6;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7): (input: Input) => A7;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8): (input: Input) => A8;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9): (input: Input) => A9;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10): (input: Input) => A10;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11): (input: Input) => A11;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12): (input: Input) => A12;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13): (input: Input) => A13;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14): (input: Input) => A14;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15): (input: Input) => A15;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16): (input: Input) => A16;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17): (input: Input) => A17;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18): (input: Input) => A18;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19): (input: Input) => A19;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20): (input: Input) => A20;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21): (input: Input) => A21;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22): (input: Input) => A22;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23): (input: Input) => A23;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24): (input: Input) => A24;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25): (input: Input) => A25;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26): (input: Input) => A26;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27): (input: Input) => A27;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28): (input: Input) => A28;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29): (input: Input) => A29;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30): (input: Input) => A30;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31): (input: Input) => A31;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32): (input: Input) => A32;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33): (input: Input) => A33;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34): (input: Input) => A34;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35): (input: Input) => A35;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36): (input: Input) => A36;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37): (input: Input) => A37;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38): (input: Input) => A38;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39): (input: Input) => A39;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40): (input: Input) => A40;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41): (input: Input) => A41;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42): (input: Input) => A42;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43): (input: Input) => A43;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44): (input: Input) => A44;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44, fn45: (input: A44) => A45): (input: Input) => A45;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44, fn45: (input: A44) => A45, fn46: (input: A45) => A46): (input: Input) => A46;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, A47>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44, fn45: (input: A44) => A45, fn46: (input: A45) => A46, fn47: (input: A46) => A47): (input: Input) => A47;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, A47, A48>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44, fn45: (input: A44) => A45, fn46: (input: A45) => A46, fn47: (input: A46) => A47, fn48: (input: A47) => A48): (input: Input) => A48;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, A47, A48, A49>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44, fn45: (input: A44) => A45, fn46: (input: A45) => A46, fn47: (input: A46) => A47, fn48: (input: A47) => A48, fn49: (input: A48) => A49): (input: Input) => A49;
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, A47, A48, A49, A50>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44, fn45: (input: A44) => A45, fn46: (input: A45) => A46, fn47: (input: A46) => A47, fn48: (input: A47) => A48, fn49: (input: A48) => A49, fn50: (input: A49) => A50): (input: Input) => A50;

type FlowConfig = {
    projectId: string;
    flowId: string;
    baseUrl?: string;
    baseStaticUrl?: string;
    baseCdnUrl?: string;
    refreshCookieName?: string;
    theme?: string;
    'style-id'?: string;
    locale?: string;
    form?: Record<string, any> | string;
    client?: Record<string, any> | string;
    tenant?: string;
    outboundAppId?: string;
};
/**
 * Builds a `<descope-wc>` flow template, mapping each config entry to a
 * kebab-cased attribute. Object values (e.g. `client` / `form` flow inputs) are
 * JSON-stringified; strings pass through. Shared by all widgets so a single
 * place controls how widget flows are started.
 */
declare const createFlowTemplate: (flowConfig?: FlowConfig) => HTMLTemplateElement;

declare const createTemplate: (templateString: string) => HTMLTemplateElement;

declare const pathJoin: (...paths: string[]) => string;
declare const compareArrays: (array1: any[], array2: any[]) => boolean;
declare const withMemCache: <I extends any[], O>(fn: (...args: I) => O) => (...args: I) => O;
declare const kebabCase: (str: string) => string;
declare const isObjEmpty: (obj: object) => boolean;
declare const pluralize: (amount: number) => (strings: TemplateStringsArray, ...expressions: (string | number)[][]) => string;
declare const debounce: (fn: Function, ms?: number) => (this: any, ...args: any[]) => void;
declare const isPlainObject: (obj: unknown) => boolean;

type Mixin = (superclass: CustomElementConstructor) => CustomElementConstructor;
declare const createSingletonMixin: <T extends Mixin>(mixin: T) => T;

declare const createIsChanged: <T extends Record<string, any>>(state: T, prevState: T) => (attrName: keyof T) => boolean;
type StateObject = Record<string, any>;
type UpdateStateCb<T> = (state: T) => Partial<T>;
type SubscribeCb<T> = (state: T, prevState: T, isChanged: ReturnType<typeof createIsChanged>) => void | Promise<void>;
type IsChanged<T> = Parameters<SubscribeCb<T>>[2];
declare class State<T extends StateObject> {
    #private;
    constructor(init?: T, { forceUpdate }?: {
        forceUpdate?: boolean;
    });
    get current(): T;
    update: (newState: Partial<T> | UpdateStateCb<T>) => void;
    subscribe(cb: SubscribeCb<T>): string;
    unsubscribe(token: string): boolean;
    unsubscribeAll(): boolean;
}

declare const decodeJWT: (token: string) => any;

declare const escapeCsvValue: (value: unknown) => string;
declare const generateCsv: (records: Record<string, unknown>[], columns: {
    header: string;
    path: string;
}[]) => string;
declare const downloadCsv: (csv: string, filename: string) => void;

type Locale = {
    locale: string;
    fallback: string;
};
/**
 * Resolves the user-facing locale, shared by the web-component flow runtime and the widget mixins
 * so both resolve locale identically.
 *
 * Order:
 *  1. Explicit locale argument (lowercased), used as its own fallback
 *  2. navigator.language (lowercased), with the language part as fallback for 'xx-YY' forms
 *  3. Empty strings
 */
declare function getUserLocale(locale: string): Locale;

export { type FlowConfig, type IsChanged, type Locale, State, type SubscribeCb, compareArrays, compose, createFlowTemplate, createSingletonMixin, createTemplate, debounce, decodeJWT, downloadCsv, escapeCsvValue, generateCsv, getUserLocale, isObjEmpty, isPlainObject, kebabCase, pathJoin, pluralize, withMemCache };
