index.js.flow 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676
  1. type Selector<TState, TProps, TResult> = {
  2. (state: TState, props: TProps, ...rest: any[]): TResult;
  3. };
  4. type SelectorCreator = {
  5. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(
  6. selector1: Selector<TState, TProps, T1>,
  7. selector2: Selector<TState, TProps, T2>,
  8. selector3: Selector<TState, TProps, T3>,
  9. selector4: Selector<TState, TProps, T4>,
  10. selector5: Selector<TState, TProps, T5>,
  11. selector6: Selector<TState, TProps, T6>,
  12. selector7: Selector<TState, TProps, T7>,
  13. selector8: Selector<TState, TProps, T8>,
  14. selector9: Selector<TState, TProps, T9>,
  15. selector10: Selector<TState, TProps, T10>,
  16. selector11: Selector<TState, TProps, T11>,
  17. selector12: Selector<TState, TProps, T12>,
  18. selector13: Selector<TState, TProps, T13>,
  19. selector14: Selector<TState, TProps, T14>,
  20. selector15: Selector<TState, TProps, T15>,
  21. resultFunc: (
  22. arg1: T1,
  23. arg2: T2,
  24. arg3: T3,
  25. arg4: T4,
  26. arg5: T5,
  27. arg6: T6,
  28. arg7: T7,
  29. arg8: T8,
  30. arg9: T9,
  31. arg10: T10,
  32. arg11: T11,
  33. arg12: T12,
  34. arg13: T13,
  35. arg14: T14,
  36. arg15: T15
  37. ) => TResult
  38. ): Selector<TState, TProps, TResult>;
  39. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(
  40. selectors: [
  41. Selector<TState, TProps, T1>,
  42. Selector<TState, TProps, T2>,
  43. Selector<TState, TProps, T3>,
  44. Selector<TState, TProps, T4>,
  45. Selector<TState, TProps, T5>,
  46. Selector<TState, TProps, T6>,
  47. Selector<TState, TProps, T7>,
  48. Selector<TState, TProps, T8>,
  49. Selector<TState, TProps, T9>,
  50. Selector<TState, TProps, T10>,
  51. Selector<TState, TProps, T11>,
  52. Selector<TState, TProps, T12>,
  53. Selector<TState, TProps, T13>,
  54. Selector<TState, TProps, T14>,
  55. Selector<TState, TProps, T15>
  56. ],
  57. resultFunc: (
  58. arg1: T1,
  59. arg2: T2,
  60. arg3: T3,
  61. arg4: T4,
  62. arg5: T5,
  63. arg6: T6,
  64. arg7: T7,
  65. arg8: T8,
  66. arg9: T9,
  67. arg10: T10,
  68. arg11: T11,
  69. arg12: T12,
  70. arg13: T13,
  71. arg14: T14,
  72. arg15: T15
  73. ) => TResult
  74. ): Selector<TState, TProps, TResult>;
  75. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(
  76. selector1: Selector<TState, TProps, T1>,
  77. selector2: Selector<TState, TProps, T2>,
  78. selector3: Selector<TState, TProps, T3>,
  79. selector4: Selector<TState, TProps, T4>,
  80. selector5: Selector<TState, TProps, T5>,
  81. selector6: Selector<TState, TProps, T6>,
  82. selector7: Selector<TState, TProps, T7>,
  83. selector8: Selector<TState, TProps, T8>,
  84. selector9: Selector<TState, TProps, T9>,
  85. selector10: Selector<TState, TProps, T10>,
  86. selector11: Selector<TState, TProps, T11>,
  87. selector12: Selector<TState, TProps, T12>,
  88. selector13: Selector<TState, TProps, T13>,
  89. selector14: Selector<TState, TProps, T14>,
  90. resultFunc: (
  91. arg1: T1,
  92. arg2: T2,
  93. arg3: T3,
  94. arg4: T4,
  95. arg5: T5,
  96. arg6: T6,
  97. arg7: T7,
  98. arg8: T8,
  99. arg9: T9,
  100. arg10: T10,
  101. arg11: T11,
  102. arg12: T12,
  103. arg13: T13,
  104. arg14: T14
  105. ) => TResult
  106. ): Selector<TState, TProps, TResult>;
  107. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(
  108. selectors: [
  109. Selector<TState, TProps, T1>,
  110. Selector<TState, TProps, T2>,
  111. Selector<TState, TProps, T3>,
  112. Selector<TState, TProps, T4>,
  113. Selector<TState, TProps, T5>,
  114. Selector<TState, TProps, T6>,
  115. Selector<TState, TProps, T7>,
  116. Selector<TState, TProps, T8>,
  117. Selector<TState, TProps, T9>,
  118. Selector<TState, TProps, T10>,
  119. Selector<TState, TProps, T11>,
  120. Selector<TState, TProps, T12>,
  121. Selector<TState, TProps, T13>,
  122. Selector<TState, TProps, T14>
  123. ],
  124. resultFunc: (
  125. arg1: T1,
  126. arg2: T2,
  127. arg3: T3,
  128. arg4: T4,
  129. arg5: T5,
  130. arg6: T6,
  131. arg7: T7,
  132. arg8: T8,
  133. arg9: T9,
  134. arg10: T10,
  135. arg11: T11,
  136. arg12: T12,
  137. arg13: T13,
  138. arg14: T14
  139. ) => TResult
  140. ): Selector<TState, TProps, TResult>;
  141. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(
  142. selector1: Selector<TState, TProps, T1>,
  143. selector2: Selector<TState, TProps, T2>,
  144. selector3: Selector<TState, TProps, T3>,
  145. selector4: Selector<TState, TProps, T4>,
  146. selector5: Selector<TState, TProps, T5>,
  147. selector6: Selector<TState, TProps, T6>,
  148. selector7: Selector<TState, TProps, T7>,
  149. selector8: Selector<TState, TProps, T8>,
  150. selector9: Selector<TState, TProps, T9>,
  151. selector10: Selector<TState, TProps, T10>,
  152. selector11: Selector<TState, TProps, T11>,
  153. selector12: Selector<TState, TProps, T12>,
  154. selector13: Selector<TState, TProps, T13>,
  155. resultFunc: (
  156. arg1: T1,
  157. arg2: T2,
  158. arg3: T3,
  159. arg4: T4,
  160. arg5: T5,
  161. arg6: T6,
  162. arg7: T7,
  163. arg8: T8,
  164. arg9: T9,
  165. arg10: T10,
  166. arg11: T11,
  167. arg12: T12,
  168. arg13: T13
  169. ) => TResult
  170. ): Selector<TState, TProps, TResult>;
  171. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(
  172. selectors: [
  173. Selector<TState, TProps, T1>,
  174. Selector<TState, TProps, T2>,
  175. Selector<TState, TProps, T3>,
  176. Selector<TState, TProps, T4>,
  177. Selector<TState, TProps, T5>,
  178. Selector<TState, TProps, T6>,
  179. Selector<TState, TProps, T7>,
  180. Selector<TState, TProps, T8>,
  181. Selector<TState, TProps, T9>,
  182. Selector<TState, TProps, T10>,
  183. Selector<TState, TProps, T11>,
  184. Selector<TState, TProps, T12>,
  185. Selector<TState, TProps, T13>
  186. ],
  187. resultFunc: (
  188. arg1: T1,
  189. arg2: T2,
  190. arg3: T3,
  191. arg4: T4,
  192. arg5: T5,
  193. arg6: T6,
  194. arg7: T7,
  195. arg8: T8,
  196. arg9: T9,
  197. arg10: T10,
  198. arg11: T11,
  199. arg12: T12,
  200. arg13: T13
  201. ) => TResult
  202. ): Selector<TState, TProps, TResult>;
  203. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(
  204. selector1: Selector<TState, TProps, T1>,
  205. selector2: Selector<TState, TProps, T2>,
  206. selector3: Selector<TState, TProps, T3>,
  207. selector4: Selector<TState, TProps, T4>,
  208. selector5: Selector<TState, TProps, T5>,
  209. selector6: Selector<TState, TProps, T6>,
  210. selector7: Selector<TState, TProps, T7>,
  211. selector8: Selector<TState, TProps, T8>,
  212. selector9: Selector<TState, TProps, T9>,
  213. selector10: Selector<TState, TProps, T10>,
  214. selector11: Selector<TState, TProps, T11>,
  215. selector12: Selector<TState, TProps, T12>,
  216. resultFunc: (
  217. arg1: T1,
  218. arg2: T2,
  219. arg3: T3,
  220. arg4: T4,
  221. arg5: T5,
  222. arg6: T6,
  223. arg7: T7,
  224. arg8: T8,
  225. arg9: T9,
  226. arg10: T10,
  227. arg11: T11,
  228. arg12: T12
  229. ) => TResult
  230. ): Selector<TState, TProps, TResult>;
  231. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(
  232. selectors: [
  233. Selector<TState, TProps, T1>,
  234. Selector<TState, TProps, T2>,
  235. Selector<TState, TProps, T3>,
  236. Selector<TState, TProps, T4>,
  237. Selector<TState, TProps, T5>,
  238. Selector<TState, TProps, T6>,
  239. Selector<TState, TProps, T7>,
  240. Selector<TState, TProps, T8>,
  241. Selector<TState, TProps, T9>,
  242. Selector<TState, TProps, T10>,
  243. Selector<TState, TProps, T11>,
  244. Selector<TState, TProps, T12>
  245. ],
  246. resultFunc: (
  247. arg1: T1,
  248. arg2: T2,
  249. arg3: T3,
  250. arg4: T4,
  251. arg5: T5,
  252. arg6: T6,
  253. arg7: T7,
  254. arg8: T8,
  255. arg9: T9,
  256. arg10: T10,
  257. arg11: T11,
  258. arg12: T12
  259. ) => TResult
  260. ): Selector<TState, TProps, TResult>;
  261. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(
  262. selector1: Selector<TState, TProps, T1>,
  263. selector2: Selector<TState, TProps, T2>,
  264. selector3: Selector<TState, TProps, T3>,
  265. selector4: Selector<TState, TProps, T4>,
  266. selector5: Selector<TState, TProps, T5>,
  267. selector6: Selector<TState, TProps, T6>,
  268. selector7: Selector<TState, TProps, T7>,
  269. selector8: Selector<TState, TProps, T8>,
  270. selector9: Selector<TState, TProps, T9>,
  271. selector10: Selector<TState, TProps, T10>,
  272. selector11: Selector<TState, TProps, T11>,
  273. resultFunc: (
  274. arg1: T1,
  275. arg2: T2,
  276. arg3: T3,
  277. arg4: T4,
  278. arg5: T5,
  279. arg6: T6,
  280. arg7: T7,
  281. arg8: T8,
  282. arg9: T9,
  283. arg10: T10,
  284. arg11: T11
  285. ) => TResult
  286. ): Selector<TState, TProps, TResult>;
  287. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(
  288. selectors: [
  289. Selector<TState, TProps, T1>,
  290. Selector<TState, TProps, T2>,
  291. Selector<TState, TProps, T3>,
  292. Selector<TState, TProps, T4>,
  293. Selector<TState, TProps, T5>,
  294. Selector<TState, TProps, T6>,
  295. Selector<TState, TProps, T7>,
  296. Selector<TState, TProps, T8>,
  297. Selector<TState, TProps, T9>,
  298. Selector<TState, TProps, T10>,
  299. Selector<TState, TProps, T11>
  300. ],
  301. resultFunc: (
  302. arg1: T1,
  303. arg2: T2,
  304. arg3: T3,
  305. arg4: T4,
  306. arg5: T5,
  307. arg6: T6,
  308. arg7: T7,
  309. arg8: T8,
  310. arg9: T9,
  311. arg10: T10,
  312. arg11: T11
  313. ) => TResult
  314. ): Selector<TState, TProps, TResult>;
  315. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(
  316. selector1: Selector<TState, TProps, T1>,
  317. selector2: Selector<TState, TProps, T2>,
  318. selector3: Selector<TState, TProps, T3>,
  319. selector4: Selector<TState, TProps, T4>,
  320. selector5: Selector<TState, TProps, T5>,
  321. selector6: Selector<TState, TProps, T6>,
  322. selector7: Selector<TState, TProps, T7>,
  323. selector8: Selector<TState, TProps, T8>,
  324. selector9: Selector<TState, TProps, T9>,
  325. selector10: Selector<TState, TProps, T10>,
  326. resultFunc: (
  327. arg1: T1,
  328. arg2: T2,
  329. arg3: T3,
  330. arg4: T4,
  331. arg5: T5,
  332. arg6: T6,
  333. arg7: T7,
  334. arg8: T8,
  335. arg9: T9,
  336. arg10: T10
  337. ) => TResult
  338. ): Selector<TState, TProps, TResult>;
  339. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(
  340. selectors: [
  341. Selector<TState, TProps, T1>,
  342. Selector<TState, TProps, T2>,
  343. Selector<TState, TProps, T3>,
  344. Selector<TState, TProps, T4>,
  345. Selector<TState, TProps, T5>,
  346. Selector<TState, TProps, T6>,
  347. Selector<TState, TProps, T7>,
  348. Selector<TState, TProps, T8>,
  349. Selector<TState, TProps, T9>,
  350. Selector<TState, TProps, T10>
  351. ],
  352. resultFunc: (
  353. arg1: T1,
  354. arg2: T2,
  355. arg3: T3,
  356. arg4: T4,
  357. arg5: T5,
  358. arg6: T6,
  359. arg7: T7,
  360. arg8: T8,
  361. arg9: T9,
  362. arg10: T10
  363. ) => TResult
  364. ): Selector<TState, TProps, TResult>;
  365. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9>(
  366. selector1: Selector<TState, TProps, T1>,
  367. selector2: Selector<TState, TProps, T2>,
  368. selector3: Selector<TState, TProps, T3>,
  369. selector4: Selector<TState, TProps, T4>,
  370. selector5: Selector<TState, TProps, T5>,
  371. selector6: Selector<TState, TProps, T6>,
  372. selector7: Selector<TState, TProps, T7>,
  373. selector8: Selector<TState, TProps, T8>,
  374. selector9: Selector<TState, TProps, T9>,
  375. resultFunc: (
  376. arg1: T1,
  377. arg2: T2,
  378. arg3: T3,
  379. arg4: T4,
  380. arg5: T5,
  381. arg6: T6,
  382. arg7: T7,
  383. arg8: T8,
  384. arg9: T9
  385. ) => TResult
  386. ): Selector<TState, TProps, TResult>;
  387. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8, T9>(
  388. selectors: [
  389. Selector<TState, TProps, T1>,
  390. Selector<TState, TProps, T2>,
  391. Selector<TState, TProps, T3>,
  392. Selector<TState, TProps, T4>,
  393. Selector<TState, TProps, T5>,
  394. Selector<TState, TProps, T6>,
  395. Selector<TState, TProps, T7>,
  396. Selector<TState, TProps, T8>,
  397. Selector<TState, TProps, T9>
  398. ],
  399. resultFunc: (
  400. arg1: T1,
  401. arg2: T2,
  402. arg3: T3,
  403. arg4: T4,
  404. arg5: T5,
  405. arg6: T6,
  406. arg7: T7,
  407. arg8: T8,
  408. arg9: T9
  409. ) => TResult
  410. ): Selector<TState, TProps, TResult>;
  411. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8>(
  412. selector1: Selector<TState, TProps, T1>,
  413. selector2: Selector<TState, TProps, T2>,
  414. selector3: Selector<TState, TProps, T3>,
  415. selector4: Selector<TState, TProps, T4>,
  416. selector5: Selector<TState, TProps, T5>,
  417. selector6: Selector<TState, TProps, T6>,
  418. selector7: Selector<TState, TProps, T7>,
  419. selector8: Selector<TState, TProps, T8>,
  420. resultFunc: (
  421. arg1: T1,
  422. arg2: T2,
  423. arg3: T3,
  424. arg4: T4,
  425. arg5: T5,
  426. arg6: T6,
  427. arg7: T7,
  428. arg8: T8
  429. ) => TResult
  430. ): Selector<TState, TProps, TResult>;
  431. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7, T8>(
  432. selectors: [
  433. Selector<TState, TProps, T1>,
  434. Selector<TState, TProps, T2>,
  435. Selector<TState, TProps, T3>,
  436. Selector<TState, TProps, T4>,
  437. Selector<TState, TProps, T5>,
  438. Selector<TState, TProps, T6>,
  439. Selector<TState, TProps, T7>,
  440. Selector<TState, TProps, T8>
  441. ],
  442. resultFunc: (
  443. arg1: T1,
  444. arg2: T2,
  445. arg3: T3,
  446. arg4: T4,
  447. arg5: T5,
  448. arg6: T6,
  449. arg7: T7,
  450. arg8: T8
  451. ) => TResult
  452. ): Selector<TState, TProps, TResult>;
  453. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7>(
  454. selector1: Selector<TState, TProps, T1>,
  455. selector2: Selector<TState, TProps, T2>,
  456. selector3: Selector<TState, TProps, T3>,
  457. selector4: Selector<TState, TProps, T4>,
  458. selector5: Selector<TState, TProps, T5>,
  459. selector6: Selector<TState, TProps, T6>,
  460. selector7: Selector<TState, TProps, T7>,
  461. resultFunc: (
  462. arg1: T1,
  463. arg2: T2,
  464. arg3: T3,
  465. arg4: T4,
  466. arg5: T5,
  467. arg6: T6,
  468. arg7: T7
  469. ) => TResult
  470. ): Selector<TState, TProps, TResult>;
  471. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6, T7>(
  472. selectors: [
  473. Selector<TState, TProps, T1>,
  474. Selector<TState, TProps, T2>,
  475. Selector<TState, TProps, T3>,
  476. Selector<TState, TProps, T4>,
  477. Selector<TState, TProps, T5>,
  478. Selector<TState, TProps, T6>,
  479. Selector<TState, TProps, T7>
  480. ],
  481. resultFunc: (
  482. arg1: T1,
  483. arg2: T2,
  484. arg3: T3,
  485. arg4: T4,
  486. arg5: T5,
  487. arg6: T6,
  488. arg7: T7
  489. ) => TResult
  490. ): Selector<TState, TProps, TResult>;
  491. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6>(
  492. selector1: Selector<TState, TProps, T1>,
  493. selector2: Selector<TState, TProps, T2>,
  494. selector3: Selector<TState, TProps, T3>,
  495. selector4: Selector<TState, TProps, T4>,
  496. selector5: Selector<TState, TProps, T5>,
  497. selector6: Selector<TState, TProps, T6>,
  498. resultFunc: (
  499. arg1: T1,
  500. arg2: T2,
  501. arg3: T3,
  502. arg4: T4,
  503. arg5: T5,
  504. arg6: T6
  505. ) => TResult
  506. ): Selector<TState, TProps, TResult>;
  507. <TState, TProps, TResult, T1, T2, T3, T4, T5, T6>(
  508. selectors: [
  509. Selector<TState, TProps, T1>,
  510. Selector<TState, TProps, T2>,
  511. Selector<TState, TProps, T3>,
  512. Selector<TState, TProps, T4>,
  513. Selector<TState, TProps, T5>,
  514. Selector<TState, TProps, T6>
  515. ],
  516. resultFunc: (
  517. arg1: T1,
  518. arg2: T2,
  519. arg3: T3,
  520. arg4: T4,
  521. arg5: T5,
  522. arg6: T6
  523. ) => TResult
  524. ): Selector<TState, TProps, TResult>;
  525. <TState, TProps, TResult, T1, T2, T3, T4, T5>(
  526. selector1: Selector<TState, TProps, T1>,
  527. selector2: Selector<TState, TProps, T2>,
  528. selector3: Selector<TState, TProps, T3>,
  529. selector4: Selector<TState, TProps, T4>,
  530. selector5: Selector<TState, TProps, T5>,
  531. resultFunc: (
  532. arg1: T1,
  533. arg2: T2,
  534. arg3: T3,
  535. arg4: T4,
  536. arg5: T5
  537. ) => TResult
  538. ): Selector<TState, TProps, TResult>;
  539. <TState, TProps, TResult, T1, T2, T3, T4, T5>(
  540. selectors: [
  541. Selector<TState, TProps, T1>,
  542. Selector<TState, TProps, T2>,
  543. Selector<TState, TProps, T3>,
  544. Selector<TState, TProps, T4>,
  545. Selector<TState, TProps, T5>
  546. ],
  547. resultFunc: (
  548. arg1: T1,
  549. arg2: T2,
  550. arg3: T3,
  551. arg4: T4,
  552. arg5: T5
  553. ) => TResult
  554. ): Selector<TState, TProps, TResult>;
  555. <TState, TProps, TResult, T1, T2, T3, T4>(
  556. selector1: Selector<TState, TProps, T1>,
  557. selector2: Selector<TState, TProps, T2>,
  558. selector3: Selector<TState, TProps, T3>,
  559. selector4: Selector<TState, TProps, T4>,
  560. resultFunc: (
  561. arg1: T1,
  562. arg2: T2,
  563. arg3: T3,
  564. arg4: T4
  565. ) => TResult
  566. ): Selector<TState, TProps, TResult>;
  567. <TState, TProps, TResult, T1, T2, T3, T4>(
  568. selectors: [
  569. Selector<TState, TProps, T1>,
  570. Selector<TState, TProps, T2>,
  571. Selector<TState, TProps, T3>,
  572. Selector<TState, TProps, T4>
  573. ],
  574. resultFunc: (
  575. arg1: T1,
  576. arg2: T2,
  577. arg3: T3,
  578. arg4: T4
  579. ) => TResult
  580. ): Selector<TState, TProps, TResult>;
  581. <TState, TProps, TResult, T1, T2, T3>(
  582. selector1: Selector<TState, TProps, T1>,
  583. selector2: Selector<TState, TProps, T2>,
  584. selector3: Selector<TState, TProps, T3>,
  585. resultFunc: (
  586. arg1: T1,
  587. arg2: T2,
  588. arg3: T3
  589. ) => TResult
  590. ): Selector<TState, TProps, TResult>;
  591. <TState, TProps, TResult, T1, T2, T3>(
  592. selectors: [
  593. Selector<TState, TProps, T1>,
  594. Selector<TState, TProps, T2>,
  595. Selector<TState, TProps, T3>
  596. ],
  597. resultFunc: (
  598. arg1: T1,
  599. arg2: T2,
  600. arg3: T3
  601. ) => TResult
  602. ): Selector<TState, TProps, TResult>;
  603. <TState, TProps, TResult, T1, T2>(
  604. selector1: Selector<TState, TProps, T1>,
  605. selector2: Selector<TState, TProps, T2>,
  606. resultFunc: (
  607. arg1: T1,
  608. arg2: T2
  609. ) => TResult
  610. ): Selector<TState, TProps, TResult>;
  611. <TState, TProps, TResult, T1, T2>(
  612. selectors: [
  613. Selector<TState, TProps, T1>,
  614. Selector<TState, TProps, T2>
  615. ],
  616. resultFunc: (
  617. arg1: T1,
  618. arg2: T2
  619. ) => TResult
  620. ): Selector<TState, TProps, TResult>;
  621. <TState, TProps, TResult, T1>(
  622. selector1: Selector<TState, TProps, T1>,
  623. resultFunc: (
  624. arg1: T1
  625. ) => TResult
  626. ): Selector<TState, TProps, TResult>;
  627. <TState, TProps, TResult, T1>(
  628. selectors: [
  629. Selector<TState, TProps, T1>
  630. ],
  631. resultFunc: (
  632. arg1: T1
  633. ) => TResult
  634. ): Selector<TState, TProps, TResult>;
  635. };
  636. type Reselect = {
  637. createSelector: SelectorCreator;
  638. defaultMemoize: <TFunc: Function>(
  639. func: TFunc,
  640. equalityCheck?: (a: any, b: any) => boolean
  641. ) => TFunc;
  642. createSelectorCreator: (
  643. memoize: Function,
  644. ...memoizeOptions: any[]
  645. ) => SelectorCreator;
  646. createStructuredSelector: <TState, TProps>(
  647. inputSelectors: {
  648. [k: string | number]: Selector<TState, TProps, any>
  649. },
  650. selectorCreator?: SelectorCreator
  651. ) => Selector<TState, TProps, any>;
  652. };
  653. declare module 'reselect' {
  654. declare var exports: Reselect;
  655. }