export type PathBasedReducer < S , ReturnType > = { < A0 extends keyof S , A1 extends keyof S [ A0 ] , A2 extends keyof S [ A0 ] [ A1 ] , A3 extends keyof S [ A0 ] [ A1 ] [ A2 ] , A4 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] , A5 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] , A6 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] , A7 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] [ A6 ] , A8 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] [ A6 ] [ A7 ] , A9 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] [ A6 ] [ A7 ] [ A8 ] , A10 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] [ A6 ] [ A7 ] [ A8 ] [ A9 ] > ( addr , reducer ) : ReturnType ; < A0 extends keyof S , A1 extends keyof S [ A0 ] , A2 extends keyof S [ A0 ] [ A1 ] , A3 extends keyof S [ A0 ] [ A1 ] [ A2 ] , A4 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] , A5 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] , A6 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] , A7 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] [ A6 ] , A8 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] [ A6 ] [ A7 ] , A9 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] [ A6 ] [ A7 ] [ A8 ] > ( addr , reducer ) : ReturnType ; < A0 extends keyof S , A1 extends keyof S [ A0 ] , A2 extends keyof S [ A0 ] [ A1 ] , A3 extends keyof S [ A0 ] [ A1 ] [ A2 ] , A4 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] , A5 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] , A6 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] , A7 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] [ A6 ] , A8 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] [ A6 ] [ A7 ] > ( addr , reducer ) : ReturnType ; < A0 extends keyof S , A1 extends keyof S [ A0 ] , A2 extends keyof S [ A0 ] [ A1 ] , A3 extends keyof S [ A0 ] [ A1 ] [ A2 ] , A4 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] , A5 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] , A6 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] , A7 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] [ A6 ] > ( addr , reducer ) : ReturnType ; < A0 extends keyof S , A1 extends keyof S [ A0 ] , A2 extends keyof S [ A0 ] [ A1 ] , A3 extends keyof S [ A0 ] [ A1 ] [ A2 ] , A4 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] , A5 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] , A6 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] > ( addr , reducer ) : ReturnType ; < A0 extends keyof S , A1 extends keyof S [ A0 ] , A2 extends keyof S [ A0 ] [ A1 ] , A3 extends keyof S [ A0 ] [ A1 ] [ A2 ] , A4 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] , A5 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] [ A4 ] > ( addr , reducer ) : ReturnType ; < A0 extends keyof S , A1 extends keyof S [ A0 ] , A2 extends keyof S [ A0 ] [ A1 ] , A3 extends keyof S [ A0 ] [ A1 ] [ A2 ] , A4 extends keyof S [ A0 ] [ A1 ] [ A2 ] [ A3 ] > ( addr , reducer ) : ReturnType ; < A0 extends keyof S , A1 extends keyof S [ A0 ] , A2 extends keyof S [ A0 ] [ A1 ] , A3 extends keyof S [ A0 ] [ A1 ] [ A2 ] > ( addr , reducer ) : ReturnType ; < A0 extends keyof S , A1 extends keyof S [ A0 ] , A2 extends keyof S [ A0 ] [ A1 ] > ( addr , reducer ) : ReturnType ; < A0 extends keyof S , A1 extends keyof S [ A0 ] > ( addr , reducer ) : ReturnType ; < A0 extends keyof S > ( addr , reducer ) : ReturnType ; ( addr , reducer ) : ReturnType ; } ;