// Type definitions for next-redux-wrapper 2.0 // Project: https://github.com/kirill-konshin/next-redux-wrapper // Definitions by: Steve // Jungwoo-An // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 3.0 /// import { IncomingMessage, ServerResponse } from 'http'; import { ComponentType } from 'react'; import { MapDispatchToPropsParam, MapStateToPropsParam, MergeProps, Options as ConnectOptions } from 'react-redux'; import { Store } from 'redux'; declare namespace nextReduxWrapper { interface Options { storeKey?: string; debug?: boolean; serializeState?: any; deserializeState?: any; } interface StoreCreatorOptions extends Options { isServer: boolean; req?: IncomingMessage; res?: ServerResponse; query?: any; } interface NextPageComponentMethods { getInitialProps(props: any): Promise; } type NextReduxWrappedComponent

= ComponentType

& NextPageComponentMethods; type NextStoreCreator = ( initialState: TInitialState, options: StoreCreatorOptions ) => Store; } declare function nextReduxWrapper( makeStore: nextReduxWrapper.NextStoreCreator, config?: nextReduxWrapper.Options ): (ComponentType: ComponentType) => nextReduxWrapper.NextReduxWrappedComponent; export default nextReduxWrapper;