import { Action, ActionCreator } from 'typescript-fsa';
declare type AnyAction = Action<any>;
interface ReducerBuilder<State> {
    case<Payload>(actionCreator: ActionCreator<Payload>, handler: (draft: State, payload: Payload) => void): ReducerBuilder<State>;
    reset(actionCreator: ActionCreator<any>): ReducerBuilder<State>;
    toReducer(): (state: State | undefined, action: AnyAction) => State;
}
/**
 * reducerWithImmer({})
 *  .case(actions.hoge, draft => {
 *    draft.fuga ++;
 *  })
 */
export declare function reducerWithImmer<State>(initialState: State): ReducerBuilder<State>;
export {};
