Module ReactHooks

external useState: 'a => ('a, Js.Internal.fn([ `Arity_1('a) ], unit)) = "BS:4.0.7������ ������B@@@(useState%react@@@""";
external useEffect: (unit => Js.Internal.fn([ `Arity_0 ], unit)) => array('a) => unit = "BS:4.0.7���$��� ���%���#B@@@E)useEffect%react@@@""";
external useEffectWithoutDependencies: (unit => Js.Internal.fn([ `Arity_0 ], unit)) => unit = "BS:4.0.7������ ������B@@E)useEffect%react@@@""useEffect";
external useEffectWithoutCleanup: (unit => option(unit)) => array('a) => unit = "BS:4.0.7���$��� ���%���#B@@@E)useEffect%react@@@""useEffect";
external useEffectWithoutCleanupOrDependencies: (unit => option(unit)) => unit = "BS:4.0.7������ ������B@@E)useEffect%react@@@""useEffect";
external useMutationEffect: (unit => Js.Internal.fn([ `Arity_0 ], unit)) => unit = "BS:4.0.7���'��� ���!���B@@E1useMutationEffect%react@@@""";
external useLayoutEffect: (unit => Js.Internal.fn([ `Arity_0 ], unit)) => unit = "BS:4.0.7���%��� ��� ���B@@E/useLayoutEffect%react@@@""";
external useMutationEffectWithoutCleanup: (unit => unit) => unit = "BS:4.0.7���5��� ���$���B@@E?useMutationEffectWithoutCleanup%react@@@""";
external useLayoutEffectWithoutCleanup: (unit => unit) => unit = "BS:4.0.7���3��� ���$���B@@E=useLayoutEffectWithoutCleanup%react@@@""";
external useCallback: (unit => 'a) => 'b => unit => 'a = "BS:4.0.7���+������+���)B@BA@@+useCallback%react@@@""";
external useMemo: (unit => 'a) => 'b => 'a = "BS:4.0.7���"��� ���$���"B@B@@'useMemo%react@@@""";
external useRef: 'a => Js.t({. current: 'a, }) = "BS:4.0.7������ ������B@@@&useRef%react@@@""";
external useDomRef: unit => Js.t({. current: option(Dom.node), }) = "BS:4.0.7������ ������A@@@&useRef%react@@@""useRef";
external useReducer: reducer:Js.Internal.fn([ `Arity_2(('state, 'action)) ], 'state) => initial:'state => ('state, Js.Internal.fn([ `Arity_1('action) ], unit)) = "BS:4.0.7���5������/���+B'reducer@B'initial@@@*useReducer%react@@@""";