///
/**
* 公用的hooks 封装
*/
import { Draft } from 'immer';
import { Handler } from "./message";
import { AnyFunc } from "./types";
export declare type Reducer = (draftState: Draft, action: A) => void | S;
export declare type ImmerSetter = (f: (draft: Draft) => void | S) => void;
export declare function useImmer(initialValue: S | (() => S)): [S, ImmerSetter];
export declare function useImmerReducer(reducer: Reducer, initialState: S, initialAction?: (initial: any) => S): [S, React.Dispatch];
export declare function useSubscriber(key: string | string[], handler: Handler): void;
export declare function usePersistFn(fn: T): T;