1 | import { Draft, nothing } from "immer";
|
2 | import { Dispatch } from "react";
|
3 | export declare type DraftFunction<S> = (draft: Draft<S>) => void;
|
4 | export declare type Updater<S> = (arg: S | DraftFunction<S>) => void;
|
5 | export declare type ImmerHook<S> = [S, Updater<S>];
|
6 | export declare function useImmer<S = any>(initialValue: S | (() => S)): ImmerHook<S>;
|
7 | export declare type ImmerReducer<S, A> = (draftState: Draft<S>, action: A) => void | (S extends undefined ? typeof nothing : S);
|
8 |
|
9 |
|
10 |
|
11 | export declare type Reducer<S = any, A = any> = ImmerReducer<S, A>;
|
12 | export declare function useImmerReducer<S, A, I>(reducer: ImmerReducer<S, A>, initializerArg: S & I, initializer: (arg: S & I) => S): [S, Dispatch<A>];
|
13 | export declare function useImmerReducer<S, A, I>(reducer: ImmerReducer<S, A>, initializerArg: I, initializer: (arg: I) => S): [S, Dispatch<A>];
|
14 | export declare function useImmerReducer<S, A>(reducer: ImmerReducer<S, A>, initialState: S, initializer?: undefined): [S, Dispatch<A>];
|