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.75
$B@@E?useMutationEffectWithoutCleanup%react@@@""";
external useLayoutEffectWithoutCleanup: (unit => unit) => unit = "BS:4.0.73
$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.75/+B'reducer@B'initial@@@*useReducer%react@@@""";