import { EventCreator } from '../interfaces'; import { Reducer } from '../types'; import { ActorEvent } from '../types/actor-event.type'; /** * Model to create reducers */ export declare class ReducerBuilder { /** * Keeps track of reducers */ private readonly state; /** * Adds a case to the reducer to match a particular type * @param typeOrHasType a string or object / function containing a type property * @param reducer a reducer function with the form of `(state: S, event: Event) => S` * @returns the current reducer builder instance (allows chaining) */ addCase(typeOrHasType: EventCreator | EventCreator[] | string | string[], reducer: Reducer>): this; /** * Immutable reducers instance */ get reducers(): Map>>; }