interface Action { type: T; } interface AnyAction extends Action { [extraProps: string]: any; } declare type Reducer = (state: S, action: A) => S; declare type Handlers = { [K in A['type']]: Reducer ? A : never>; }; export declare function createReducer( initialState: S, handlers: Handlers, ): (state: S | undefined, action: A) => S; export {}