import React from 'react'; import { Logger, Updater } from './type'; export type { Logger, Updater, UpdateState } from './type'; declare type Options = { logger?: Logger; deps?: any[]; }; declare type UpdaterConfig = { silent?: boolean; }; export declare const useImmer: (initialValue: T, options?: Options) => readonly [T, (updater: Updater, stateCallback?: ((state: T) => void) | undefined) => Promise, { updaterReturn: UR | null; set: (nextValue: T, config?: UpdaterConfig | undefined) => void; get: () => T; clear: () => void; value: T; stateRef: React.MutableRefObject<{ value: T; updaterReturn: UR | null; setState: (value: { refreshCount: number; }, callback?: ((s: { refreshCount: number; }) => void) | undefined) => void; }>; }];