import * as React from 'react'; type WithHooks = (component: React.SFC) => React.SFC; declare function useContext(context: React.Context): T; declare function useState(initialState: S | (() => S)): [S, React.Dispatch>]; declare function useReducer( reducer: React.Reducer, initialState: S, initialAction?: A | null, ): [S, React.Dispatch]; declare function useRef(initialValue: T): React.MutableRefObject; declare function useRef(initialValue: T | null): React.RefObject; declare function useMutationEffect(effect: React.EffectCallback, inputs?: React.InputIdentityList): void; declare function useLayoutEffect(effect: React.EffectCallback, inputs?: React.InputIdentityList): void; declare function useEffect(effect: React.EffectCallback, inputs?: React.InputIdentityList): void; declare function useImperativeMethods( ref: React.Ref | undefined, init: () => R, inputs?: React.InputIdentityList, ): void; declare function useCallback any>(callback: T, inputs: React.InputIdentityList): T; declare function useMemo(factory: () => T, inputs: React.InputIdentityList): T; declare var withHooks: WithHooks; export { useContext, useState, useReducer, useRef, useMutationEffect, useLayoutEffect, useEffect, useImperativeMethods, useCallback, useMemo, } export default withHooks;